InvoiceShelf
InvoiceShelf is a self-hosted open source invoicing system for freelancers and small businesses.
Configuration
version: "3.8"
services:
invoiceshelf-postgres:
image: postgres:15
volumes:
- invoiceshelf-postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_DB=${DB_DATABASE}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME}"]
interval: 10s
timeout: 5s
retries: 5
invoiceshelf-app:
image: invoiceshelf/invoiceshelf:nightly
volumes:
- invoiceshelf-app-data:/data
- invoiceshelf-app-conf:/conf
environment:
- PHP_TZ=UTC
- TIMEZONE=UTC
- APP_NAME=InvoiceShelf
- APP_ENV=production
- APP_DEBUG=false
- APP_URL=http://${INVOICESHELF_HOST}
- DB_CONNECTION=pgsql
- DB_HOST=invoiceshelf-postgres
- DB_PORT=5432
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- CACHE_STORE=file
- SESSION_DRIVER=file
- SESSION_LIFETIME=120
- SESSION_ENCRYPT=true
- SESSION_PATH=/
- SESSION_DOMAIN=${INVOICESHELF_HOST}
- SANCTUM_STATEFUL_DOMAINS=${INVOICESHELF_HOST}
- STARTUP_DELAY=10
depends_on:
invoiceshelf-postgres:
condition: service_healthy
volumes:
invoiceshelf-postgres-data:
invoiceshelf-app-data:
invoiceshelf-app-conf:[variables]
main_domain = "${domain}"
db_password = "${password}"
db_username = "invoiceshelf"
db_database = "invoiceshelf"
[config]
mounts = []
[[config.domains]]
serviceName = "invoiceshelf-app"
port = 8080
host = "${main_domain}"
[config.env]
INVOICESHELF_HOST = "${main_domain}"
DB_PASSWORD = "${db_password}"
DB_USERNAME = "${db_username}"
DB_DATABASE = "${db_database}"Base64
To import this template in Dokploy: create a Compose service → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIGludm9pY2VzaGVsZi1wb3N0Z3JlczpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTVcblxuICAgIHZvbHVtZXM6XG4gICAgICAtIGludm9pY2VzaGVsZi1wb3N0Z3Jlcy1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YVxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19QQVNTV09SRD0ke0RCX1BBU1NXT1JEfVxuICAgICAgLSBQT1NUR1JFU19VU0VSPSR7REJfVVNFUk5BTUV9XG4gICAgICAtIFBPU1RHUkVTX0RCPSR7REJfREFUQUJBU0V9XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJwZ19pc3JlYWR5IC1VICR7REJfVVNFUk5BTUV9XCJdXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuXG4gIGludm9pY2VzaGVsZi1hcHA6XG4gICAgaW1hZ2U6IGludm9pY2VzaGVsZi9pbnZvaWNlc2hlbGY6bmlnaHRseVxuXG4gICAgdm9sdW1lczpcbiAgICAgIC0gaW52b2ljZXNoZWxmLWFwcC1kYXRhOi9kYXRhXG4gICAgICAtIGludm9pY2VzaGVsZi1hcHAtY29uZjovY29uZlxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQSFBfVFo9VVRDXG4gICAgICAtIFRJTUVaT05FPVVUQ1xuICAgICAgLSBBUFBfTkFNRT1JbnZvaWNlU2hlbGZcbiAgICAgIC0gQVBQX0VOVj1wcm9kdWN0aW9uXG4gICAgICAtIEFQUF9ERUJVRz1mYWxzZVxuICAgICAgLSBBUFBfVVJMPWh0dHA6Ly8ke0lOVk9JQ0VTSEVMRl9IT1NUfVxuICAgICAgLSBEQl9DT05ORUNUSU9OPXBnc3FsXG4gICAgICAtIERCX0hPU1Q9aW52b2ljZXNoZWxmLXBvc3RncmVzXG4gICAgICAtIERCX1BPUlQ9NTQzMlxuICAgICAgLSBEQl9EQVRBQkFTRT0ke0RCX0RBVEFCQVNFfVxuICAgICAgLSBEQl9VU0VSTkFNRT0ke0RCX1VTRVJOQU1FfVxuICAgICAgLSBEQl9QQVNTV09SRD0ke0RCX1BBU1NXT1JEfVxuICAgICAgLSBDQUNIRV9TVE9SRT1maWxlXG4gICAgICAtIFNFU1NJT05fRFJJVkVSPWZpbGVcbiAgICAgIC0gU0VTU0lPTl9MSUZFVElNRT0xMjBcbiAgICAgIC0gU0VTU0lPTl9FTkNSWVBUPXRydWVcbiAgICAgIC0gU0VTU0lPTl9QQVRIPS9cbiAgICAgIC0gU0VTU0lPTl9ET01BSU49JHtJTlZPSUNFU0hFTEZfSE9TVH1cbiAgICAgIC0gU0FOQ1RVTV9TVEFURUZVTF9ET01BSU5TPSR7SU5WT0lDRVNIRUxGX0hPU1R9XG4gICAgICAtIFNUQVJUVVBfREVMQVk9MTBcbiAgICBkZXBlbmRzX29uOlxuICAgICAgaW52b2ljZXNoZWxmLXBvc3RncmVzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuXG52b2x1bWVzOlxuICBpbnZvaWNlc2hlbGYtcG9zdGdyZXMtZGF0YTpcbiAgaW52b2ljZXNoZWxmLWFwcC1kYXRhOlxuICBpbnZvaWNlc2hlbGYtYXBwLWNvbmY6ICIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5kYl9wYXNzd29yZCA9IFwiJHtwYXNzd29yZH1cIlxuZGJfdXNlcm5hbWUgPSBcImludm9pY2VzaGVsZlwiXG5kYl9kYXRhYmFzZSA9IFwiaW52b2ljZXNoZWxmXCJcblxuW2NvbmZpZ11cbm1vdW50cyA9IFtdXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImludm9pY2VzaGVsZi1hcHBcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcblxuW2NvbmZpZy5lbnZdXG5JTlZPSUNFU0hFTEZfSE9TVCA9IFwiJHttYWluX2RvbWFpbn1cIlxuREJfUEFTU1dPUkQgPSBcIiR7ZGJfcGFzc3dvcmR9XCJcbkRCX1VTRVJOQU1FID0gXCIke2RiX3VzZXJuYW1lfVwiXG5EQl9EQVRBQkFTRSA9IFwiJHtkYl9kYXRhYmFzZX1cIlxuIgp9Links
Tags
invoice, business, finance
Version: latest