init
This commit is contained in:
36
README.md
Normal file
36
README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# coolcouch
|
||||
|
||||
CouchDB 3 on Coolify, with CORS enabled and system databases bootstrapped at first start.
|
||||
|
||||
## Deploy
|
||||
|
||||
1. In Coolify: **New Resource → Docker Compose** and point it at this repository.
|
||||
2. In the resource's **Environment Variables** tab, set:
|
||||
- `COUCHDB_PASSWORD` — required
|
||||
- `COUCHDB_USER` — optional, defaults to `admin`
|
||||
3. In the resource's **Domains** tab, assign a domain to the `couchdb` service on port `5984`. Coolify fills `SERVICE_FQDN_COUCHDB_5984` from this.
|
||||
4. **Deploy.** The `couchdb-init` one-shot service will wait for CouchDB to be healthy, then `PUT` `_users`, `_replicator`, `_global_changes` and exit.
|
||||
|
||||
## Verify
|
||||
|
||||
Replace `$DOMAIN` and `$PASS`:
|
||||
|
||||
```bash
|
||||
curl -fsS https://$DOMAIN/_up
|
||||
curl -fsS -u admin:$PASS https://$DOMAIN/
|
||||
curl -fsS -u admin:$PASS https://$DOMAIN/_all_dbs
|
||||
curl -fsS -I -X OPTIONS https://$DOMAIN/ \
|
||||
-H "Origin: https://example.com" \
|
||||
-H "Access-Control-Request-Method: GET"
|
||||
```
|
||||
|
||||
Expected: `_up` returns `{"status":"ok",...}`; `/` returns the CouchDB welcome JSON; `_all_dbs` returns `["_global_changes","_replicator","_users"]`; the preflight returns a 2xx with an `Access-Control-Allow-Origin` header.
|
||||
|
||||
## CORS
|
||||
|
||||
Wildcard origin (`*`), `credentials = false` — the only browser-spec-legal combination with a wildcard. If a client needs cookie/credentialed auth, switch `origins` in `couchdb/local.d/cors.ini` to an explicit list and set `credentials = true`.
|
||||
|
||||
## Files
|
||||
|
||||
- `docker-compose.yml` — services, volume, Traefik labels, healthcheck, init sidecar
|
||||
- `couchdb/local.d/cors.ini` — mounted into `/opt/couchdb/etc/local.d/` so CouchDB picks it up at startup
|
||||
Reference in New Issue
Block a user