Deployment
Pre-built images are available on the Docker Hub.
Excalibee needs nothing but a port. You can verify it starts correctly via the following command:
docker run --rm -p 3000:3000 butterhosting/excalibeeA more realistic setup mounts a persistent volume for /opt/excalibee/data, so the SQLite database holding your drawings survives container restarts:
services:
excalibee:
image: butterhosting/excalibee
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./.htpasswd:/opt/excalibee/.htpasswd:ro
- excalibee-data:/opt/excalibee/data
environment:
EXCALIBEE_TIMEZONE: "Europe/Amsterdam"
volumes:
excalibee-data:Environment vars
When starting Excalibee, the following environment variables can be specified.
| Variable | Options | Description |
|---|---|---|
EXCALIBEE_LOGGING | debug, info, warn, error (default info) | Specifies Excalibee's own logging level |
EXCALIBEE_TIMEZONE | IANA time zone (default UTC) | Specifies the timezone used by the server |
EXCALIBEE_SUPPORT_TOKEN | optional | Specifies an Excalibee support token; click here for more information |
.htpasswd
Excalibee supports HTTP Basic Authentication out of the box. To enable it, place a passwords file at /opt/excalibee/.htpasswd using the standard Apache format with bcrypt hashes.
alice:$2b$10$0EhE06AyBn4shMGqCkJzqOIPGsYCJxO2mzbgCbfFQ4te5003PiYOK
bob:$2b$10$LbAfTfDmhD9SbroH.JVrc.uUpfNxVDDtjPDTvwE7UaCNnn3PxrQF2Which can be created as follows:
htpasswd -B -c .htpasswd aliceIf no passwords file is present, authentication is disabled. For any deployment exposed to the internet, you should either provide an .htpasswd or place Excalibee behind a reverse proxy that handles it.
/data/
The /opt/excalibee/data/ directory stores Excalibee's internal SQLite database, containing every folder, every drawing, its thumbnail and any images pasted into it.
Losing the data/ directory means losing all of your drawings, so it's strongly recommended to mount /opt/excalibee/data/ as a persistent volume.