mirror of
https://github.com/rybbit-io/rybbit.git
synced 2025-05-11 20:35:39 +02:00
Add cloud configuration to Docker Compose
- Introduced a new docker-compose.cloud.yml file to support cloud deployment. - Added services for Caddy, ClickHouse, Postgres, backend, and client with appropriate configurations. - Updated environment variables for backend and client services to facilitate cloud integration. - Removed cloud-related environment variables from the main docker-compose.yml for clarity.
This commit is contained in:
parent
b34aff1153
commit
c78ad535da
3 changed files with 106 additions and 15 deletions
106
docker-compose.cloud.yml
Normal file
106
docker-compose.cloud.yml
Normal file
|
@ -0,0 +1,106 @@
|
|||
services:
|
||||
caddy:
|
||||
image: caddy:latest
|
||||
container_name: caddy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "443:443/udp" # Needed for HTTP/3
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile # Mount Caddy config file
|
||||
- caddy_data:/data # Mount persistent data volume for certs etc.
|
||||
- caddy_config:/config # Mount persistent config volume
|
||||
environment:
|
||||
# Pass domain name for use in Caddyfile
|
||||
# Email is configured via Caddyfile global options
|
||||
- DOMAIN_NAME=${DOMAIN_NAME}
|
||||
depends_on:
|
||||
- backend
|
||||
- client
|
||||
|
||||
clickhouse:
|
||||
container_name: clickhouse
|
||||
image: clickhouse/clickhouse-server:latest
|
||||
ports:
|
||||
- "8123:8123"
|
||||
- "9000:9000"
|
||||
volumes:
|
||||
- clickhouse-data:/var/lib/clickhouse
|
||||
- ./clickhouse_config:/etc/clickhouse-server/config.d
|
||||
environment:
|
||||
- CLICKHOUSE_DB=analytics
|
||||
- CLICKHOUSE_USER=default
|
||||
- CLICKHOUSE_PASSWORD=frog
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
|
||||
interval: 3s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
restart: unless-stopped
|
||||
|
||||
postgres:
|
||||
image: postgres:latest
|
||||
container_name: postgres
|
||||
environment:
|
||||
POSTGRES_USER: frog
|
||||
POSTGRES_PASSWORD: frog
|
||||
POSTGRES_DB: analytics
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
|
||||
backend:
|
||||
container_name: backend
|
||||
build:
|
||||
context: ./server
|
||||
dockerfile: Dockerfile
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- CLICKHOUSE_HOST=http://clickhouse:8123
|
||||
- CLICKHOUSE_DB=analytics
|
||||
- CLICKHOUSE_PASSWORD=frog
|
||||
- POSTGRES_HOST=postgres
|
||||
- POSTGRES_PORT=5432
|
||||
- POSTGRES_DB=analytics
|
||||
- POSTGRES_USER=frog
|
||||
- POSTGRES_PASSWORD=frog
|
||||
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
|
||||
- BASE_URL=${BASE_URL}
|
||||
# below is only for rybbit cloud
|
||||
- CLOUD=${CLOUD}
|
||||
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
|
||||
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
||||
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
||||
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
|
||||
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
|
||||
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
postgres:
|
||||
condition: service_started
|
||||
restart: unless-stopped
|
||||
|
||||
client:
|
||||
container_name: client
|
||||
build:
|
||||
context: ./client
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
NEXT_PUBLIC_BACKEND_URL: ${BASE_URL}
|
||||
NEXT_PUBLIC_CLOUD: ${CLOUD}
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- NEXT_PUBLIC_BACKEND_URL=${BASE_URL}
|
||||
- NEXT_PUBLIC_CLOUD=${CLOUD}
|
||||
depends_on:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
clickhouse-data:
|
||||
postgres-data:
|
||||
caddy_data: # Persistent volume for Caddy's certificates and state
|
||||
caddy_config: # Persistent volume for Caddy's configuration cache (optional but good practice)
|
|
@ -68,14 +68,6 @@ services:
|
|||
- POSTGRES_PASSWORD=frog
|
||||
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
|
||||
- BASE_URL=${BASE_URL}
|
||||
# below is only for rybbit cloud
|
||||
- CLOUD=${CLOUD}
|
||||
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
|
||||
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
||||
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
||||
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
|
||||
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
|
||||
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
|
@ -90,11 +82,9 @@ services:
|
|||
dockerfile: Dockerfile
|
||||
args:
|
||||
NEXT_PUBLIC_BACKEND_URL: ${BASE_URL}
|
||||
NEXT_PUBLIC_CLOUD: ${CLOUD}
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- NEXT_PUBLIC_BACKEND_URL=${BASE_URL}
|
||||
- NEXT_PUBLIC_CLOUD=${CLOUD}
|
||||
depends_on:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
|
|
5
setup.sh
5
setup.sh
|
@ -31,11 +31,6 @@ cat > .env << EOL
|
|||
DOMAIN_NAME=${DOMAIN_NAME}
|
||||
BASE_URL=${BASE_URL}
|
||||
BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
|
||||
|
||||
# Defaulting to empty strings to suppress docker-compose warnings
|
||||
STRIPE_SECRET_KEY=
|
||||
STRIPE_WEBHOOK_SECRET=
|
||||
CLOUD=
|
||||
EOL
|
||||
|
||||
echo ".env file created successfully with domain ${DOMAIN_NAME}."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue