diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 928422c34..346c1a325 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,114 +1,148 @@ services: coolify: - build: - context: . - dockerfile: /data/coolify/source/docker/dev-ssu/Dockerfile + image: "githaven.org/shiloh/lasthourcloud:latest" + volumes: + - type: bind + source: /data/coolify/source/.env + target: /var/www/html/.env + read_only: true + - /data/coolify/ssh:/var/www/html/storage/app/ssh + - /data/coolify/applications:/var/www/html/storage/app/applications + - /data/coolify/databases:/var/www/html/storage/app/databases + - /data/coolify/services:/var/www/html/storage/app/services + - /data/coolify/backups:/var/www/html/storage/app/backups + - /data/coolify/webhooks-during-maintenance:/var/www/html/storage/app/webhooks-during-maintenance + environment: + - APP_ID + - APP_ENV=production + - APP_DEBUG + - APP_NAME + - APP_KEY + - APP_URL + - DB_CONNECTION + - DB_HOST + - DB_PORT + - DB_DATABASE + - DB_USERNAME + - DB_PASSWORD + - QUEUE_CONNECTION + - REDIS_HOST + - REDIS_PASSWORD + - HORIZON_MAX_PROCESSES + - HORIZON_BALANCE_MAX_SHIFT + - HORIZON_BALANCE_COOLDOWN + - SSL_MODE=off + - PHP_PM_CONTROL=dynamic + - PHP_PM_START_SERVERS=1 + - PHP_PM_MIN_SPARE_SERVERS=1 + - PHP_PM_MAX_SPARE_SERVERS=10 + - PUSHER_HOST + - PUSHER_BACKEND_HOST + - PUSHER_PORT + - PUSHER_BACKEND_PORT + - PUSHER_SCHEME + - PUSHER_APP_ID + - PUSHER_APP_KEY + - PUSHER_APP_SECRET + - AUTOUPDATE + - SELF_HOSTED + - FEEDBACK_DISCORD_WEBHOOK + - WAITLIST + - SUBSCRIPTION_PROVIDER + - STRIPE_API_KEY + - STRIPE_WEBHOOK_SECRET + - STRIPE_PRICE_ID_BASIC_MONTHLY + - STRIPE_PRICE_ID_BASIC_YEARLY + - STRIPE_PRICE_ID_PRO_MONTHLY + - STRIPE_PRICE_ID_PRO_YEARLY + - STRIPE_PRICE_ID_ULTIMATE_MONTHLY + - STRIPE_PRICE_ID_ULTIMATE_YEARLY + - STRIPE_PRICE_ID_BASIC_MONTHLY_OLD + - STRIPE_PRICE_ID_BASIC_YEARLY_OLD + - STRIPE_PRICE_ID_PRO_MONTHLY_OLD + - STRIPE_PRICE_ID_PRO_YEARLY_OLD + - STRIPE_PRICE_ID_ULTIMATE_MONTHLY_OLD + - STRIPE_PRICE_ID_ULTIMATE_YEARLY_OLD + - STRIPE_EXCLUDED_PLANS + - PADDLE_VENDOR_ID + - PADDLE_WEBHOOK_SECRET + - PADDLE_VENDOR_AUTH_CODE + - PADDLE_PUBLIC_KEY + - PADDLE_PRICE_ID_BASIC_MONTHLY + - PADDLE_PRICE_ID_BASIC_YEARLY + - PADDLE_PRICE_ID_PRO_MONTHLY + - PADDLE_PRICE_ID_PRO_YEARLY + - PADDLE_PRICE_ID_ULTIMATE_MONTHLY + - PADDLE_PRICE_ID_ULTIMATE_YEARLY + - LEMON_SQUEEZY_API_KEY + - LEMON_SQUEEZY_WEBHOOK_SECRET + - LEMON_SQUEEZY_CHECKOUT_ID_BASIC_MONTHLY + - LEMON_SQUEEZY_CHECKOUT_ID_BASIC_YEARLY + - LEMON_SQUEEZY_CHECKOUT_ID_PRO_MONTHLY + - LEMON_SQUEEZY_CHECKOUT_ID_PRO_YEARLY + - LEMON_SQUEEZY_CHECKOUT_ID_ULTIMATE_MONTHLY + - LEMON_SQUEEZY_CHECKOUT_ID_ULTIMATE_YEARLY + - LEMON_SQUEEZY_BASIC_PLAN_IDS + - LEMON_SQUEEZY_PRO_PLAN_IDS + - LEMON_SQUEEZY_ULTIMATE_PLAN_IDS ports: - "${APP_PORT:-8000}:80" - environment: - PUID: "${USERID:-1000}" - PGID: "${GROUPID:-1000}" - SSL_MODE: "off" - AUTORUN_LARAVEL_STORAGE_LINK: "false" - AUTORUN_LARAVEL_MIGRATION: "false" - PUSHER_HOST: "${PUSHER_HOST}" - PUSHER_PORT: "${PUSHER_PORT}" - PUSHER_SCHEME: "${PUSHER_SCHEME:-http}" - PUSHER_APP_ID: "${PUSHER_APP_ID:-coolify}" - PUSHER_APP_KEY: "${PUSHER_APP_KEY:-coolify}" - PUSHER_APP_SECRET: "${PUSHER_APP_SECRET:-coolify}" - volumes: - - .:/var/www/html/:cached + expose: + - "${APP_PORT:-8000}" + healthcheck: + test: curl --fail http://localhost:80/api/health || exit 1 + interval: 5s + retries: 10 + timeout: 2s + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy postgres: - pull_policy: always - ports: - - "${FORWARD_DB_PORT:-5432}:5432" - env_file: - - .env + volumes: + - coolify-db:/var/lib/postgresql/data environment: POSTGRES_USER: "${DB_USERNAME:-coolify}" - POSTGRES_PASSWORD: "${DB_PASSWORD:-password}" + POSTGRES_PASSWORD: "${DB_PASSWORD}" POSTGRES_DB: "${DB_DATABASE:-coolify}" - POSTGRES_HOST_AUTH_METHOD: "trust" - volumes: - - /data/coolify/_volumes/database/:/var/lib/postgresql/data - # - coolify-pg-data-dev:/var/lib/postgresql/data + healthcheck: + test: + [ + "CMD-SHELL", + "pg_isready -U ${DB_USERNAME:-coolify}", + "-d", + "${DB_DATABASE:-coolify}", + ] + interval: 5s + retries: 10 + timeout: 2s redis: - pull_policy: always - ports: - - "${FORWARD_REDIS_PORT:-6379}:6379" - env_file: - - .env + command: redis-server --save 20 1 --loglevel warning --requirepass ${REDIS_PASSWORD} + environment: + REDIS_PASSWORD: "${REDIS_PASSWORD}" volumes: - - /data/coolify/_volumes/redis/:/data - # - coolify-redis-data-dev:/data + - coolify-redis:/data + healthcheck: + test: redis-cli ping + interval: 5s + retries: 10 + timeout: 2s soketi: - env_file: - - .env ports: - - "${FORWARD_SOKETI_PORT:-6001}:6001" + - "${SOKETI_PORT:-6001}:6001" environment: - SOKETI_DEBUG: "false" - SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID:-coolify}" - SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY:-coolify}" - SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET:-coolify}" - vite: - image: node:20 - pull_policy: always - working_dir: /var/www/html - # environment: - # VITE_PUSHER_APP_KEY: "${PUSHER_APP_KEY:-coolify}" - ports: - - "${VITE_PORT:-5173}:${VITE_PORT:-5173}" - volumes: - - .:/var/www/html:cached - command: sh -c "npm install && npm run dev" - networks: - - coolify - testing-host: - image: "ghcr.io/coollabsio/coolify-testing-host:latest" - pull_policy: always - init: true - container_name: coolify-testing-host - volumes: - - /:/host - - /var/run/docker.sock:/var/run/docker.sock - - /data/coolify/:/data/coolify - networks: - - coolify - mailpit: - image: "axllent/mailpit:latest" - pull_policy: always - container_name: coolify-mail - ports: - - "${FORWARD_MAILPIT_PORT:-1025}:1025" - - "${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025" - networks: - - coolify - minio: - image: minio/minio:latest - pull_policy: always - container_name: coolify-minio - command: server /data --console-address ":9001" - ports: - - "${FORWARD_MINIO_PORT:-9000}:9000" - - "${FORWARD_MINIO_PORT_CONSOLE:-9001}:9001" - environment: - MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY:-minioadmin}" - MINIO_SECRET_KEY: "${MINIO_SECRET_KEY:-minioadmin}" - volumes: - - /data/coolify/_volumes/minio/:/data - # - coolify-minio-data-dev:/data - networks: - - coolify - + SOKETI_DEBUG: "${SOKETI_DEBUG:-false}" + SOKETI_DEFAULT_APP_ID: "${PUSHER_APP_ID}" + SOKETI_DEFAULT_APP_KEY: "${PUSHER_APP_KEY}" + SOKETI_DEFAULT_APP_SECRET: "${PUSHER_APP_SECRET}" + healthcheck: + test: wget -qO- http://localhost:6001/ready || exit 1 + interval: 5s + retries: 10 + timeout: 2s volumes: - coolify-data-dev: - coolify-pg-data-dev: - coolify-redis-data-dev: - coolify-minio-data-dev: - -networks: - coolify: - name: coolify - external: false + coolify-db: + name: coolify-db + coolify-redis: + name: coolify-redis diff --git a/scripts/dev_install.sh b/scripts/dev_install.sh index b1ecfe1b7..d9329fb42 100644 --- a/scripts/dev_install.sh +++ b/scripts/dev_install.sh @@ -226,8 +226,6 @@ cp /home/lasthour/lasthourcloud/docker-compose.yml /data/coolify/source/docker-c cp /home/lasthour/lasthourcloud/docker-compose.dev.yml /data/coolify/source/docker-compose.dev.yml cp /home/lasthour/lasthourcloud/.env.production /data/coolify/source/.env.production cp /home/lasthour/lasthourcloud/scripts/dev_upgrade.sh /data/coolify/source/dev_upgrade.sh -cp -R /home/lasthour/lasthourcloud/docker/dev-ssu /data/coolify/source/docker/ - chown -R 9999:root /data/coolify chmod -R 700 /data/coolify diff --git a/scripts/dev_upgrade.sh b/scripts/dev_upgrade.sh index 41985bd26..01ba91638 100644 --- a/scripts/dev_upgrade.sh +++ b/scripts/dev_upgrade.sh @@ -12,7 +12,6 @@ echo "Copying required files from Last Hour Cloud git repo..." cp /home/lasthour/lasthourcloud/docker-compose.yml /data/coolify/source/docker-compose.yml cp /home/lasthour/lasthourcloud/docker-compose.dev.yml /data/coolify/source/docker-compose.dev.yml cp /home/lasthour/lasthourcloud/.env.production /data/coolify/source/.env.production -cp -R /home/lasthour/lasthourcloud/docker/dev-ssu /data/coolify/source/docker/ # Merge .env and .env.production. New values will be added to .env sort -u -t '=' -k 1,1 /data/coolify/source/.env /data/coolify/source/.env.production | sed '/^$/d' >/data/coolify/source/.env.temp && mv /data/coolify/source/.env.temp /data/coolify/source/.env