Initialize project with basic structure, including Docker configuration, backend and frontend setup, environment configuration, and essential files for development.
This commit is contained in:
50
deployments/coolify.md
Normal file
50
deployments/coolify.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Coolify deployment
|
||||
|
||||
## Resource
|
||||
|
||||
Create a project and add this repository as a Docker Compose resource. Use the root `compose.yaml`. Assign the public domain to the `web` service on port 80.
|
||||
|
||||
Do not add custom Compose networks or Traefik labels. Coolify creates the deployment network and connects its proxy. The `web` service proxies `/api` and the SSE stream to `api`; `api` and `db` remain internal.
|
||||
|
||||
## Required variables
|
||||
|
||||
Set these as production variables in Coolify:
|
||||
|
||||
- `PUBLIC_URL=https://mix.example.com`
|
||||
- `POSTGRES_DB`
|
||||
- `POSTGRES_USER`
|
||||
- `POSTGRES_PASSWORD` — generate a unique value
|
||||
- `DATABASE_URL=postgres://<user>:<password>@db:5432/<database>?sslmode=disable`
|
||||
- `DISCORD_CLIENT_ID`
|
||||
- `DISCORD_CLIENT_SECRET`
|
||||
- `DISCORD_REDIRECT_URL=https://mix.example.com/api/auth/discord/callback`
|
||||
- `ADMIN_DISCORD_IDS` — comma-separated Discord user IDs
|
||||
|
||||
Do not copy production values into `.env` in the repository.
|
||||
|
||||
## Discord
|
||||
|
||||
In the Discord Developer Portal:
|
||||
|
||||
1. Create an application.
|
||||
2. Add the exact production callback URL.
|
||||
3. Use only the `identify` OAuth scope.
|
||||
4. Store the client secret only in Coolify.
|
||||
|
||||
## Storage and backups
|
||||
|
||||
PostgreSQL uses the `postgres_data` named volume. Confirm that Coolify recognizes it as persistent storage before accepting users.
|
||||
|
||||
Persistent storage is not a backup. Schedule an encrypted `pg_dump` to storage outside the VPS, define retention, and test restoration before launch. Back up before schema migrations.
|
||||
|
||||
## Deployment verification
|
||||
|
||||
1. Ensure `migrations` exits successfully.
|
||||
2. Ensure `db`, `api`, and `web` become healthy.
|
||||
3. Open `/health` through the public domain.
|
||||
4. Complete Discord login and verify the admin role.
|
||||
5. Create a test event and RSVP.
|
||||
6. Restart/redeploy and confirm the event remains.
|
||||
7. Verify SSE remains connected through the proxy.
|
||||
|
||||
Rollback application images only when the database migration is backward-compatible. Otherwise restore the matching database backup.
|
||||
Reference in New Issue
Block a user