Coolify
- Postgres. New resource, Database, PostgreSQL. Copy its internal URL.
- Storage. New resource, Service, MinIO. Make a bucket and an access key
in its console, and give its API a public domain (for example
s3.assets.example.com): browsers upload to it. - Artbucket. New resource, Docker Image,
ghcr.io/pwnera/artbucket:1, port3000, with your domain (assets.example.com). Environment:
DATABASE_URL=<Postgres internal URL>S3_ENDPOINT=<MinIO internal URL, e.g. http://minio:9000>S3_PUBLIC_ENDPOINT=https://s3.assets.example.comS3_BUCKET=artbucketS3_ACCESS_KEY_ID=...S3_SECRET_ACCESS_KEY=...S3_FORCE_PATH_STYLE=trueAPP_URL=https://assets.example.comBETTER_AUTH_SECRET=<openssl rand -base64 32>TRUSTED_PROXIES=privateDeploy. The app migrates its database and sets up the bucket on start; make the first account at your domain.
Coolify can also deploy the source repository’s
docker-compose.yml, but its app
service sits behind a Compose profile; the image resource above is simpler.