
Deploy Crater on Your Own Server
Open Source Invoicing Solution for Individuals & Businesses
Want to deploy Crater on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.
What is Crater?
Crater is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates. Please note that this is **NOT** the official image. We are using the image provided by Shinsenter: https://hub.docker.com/r/shinsenter/crater Please make sure you enter `APP_URL` and `APP_KEY` before proceeding.
Self-Host Crater
Follow these steps to deploy on your own server.
Install Docker
Skip this step if Docker is already installed on your server.
curl -fsSL https://get.docker.com | sh
Configure
Customize the settings below. Defaults work for most cases.
General
Deploy
Copy the configuration and run it on your server.
services:
crater:
environment:
APP_DEBUG: "false"
APP_ENV: production
APP_KEY: ""
APP_LOG_LEVEL: error
APP_URL: ""
BROADCAST_DRIVER: log
CACHE_DRIVER: file
CRATER_AUTO_MIGRATION: "false"
CRATER_AUTO_OPTIMIZE: "false"
CRATER_LINK_STORAGE: "false"
CRATER_PHP_VERSION: "8.1"
CRATER_QUEUE_ENABLED: "true"
CRATER_QUEUE_OPTIONS: ""
CRATER_SCHEDULE_ENABLED: "true"
CRATER_SCHEDULE_OPTIONS: ""
CRON_JOB_AUTH_TOKEN: ""
DB_CONNECTION: mysql
DB_DATABASE: crater
DB_HOST: crater-db
DB_PASSWORD: abbff9e7cf0f6877
DB_PORT: "3306"
DB_USERNAME: crater
MAIL_DRIVER: smtp
MAIL_ENCRYPTION: ""
MAIL_FROM_ADDRESS: admin@crater.in
MAIL_FROM_NAME: Crater
MAIL_HOST: ""
MAIL_PASSWORD: ""
MAIL_PORT: ""
MAIL_USERNAME: ""
PGID: "1000"
PUID: "1000"
PUSHER_APP_ID: ""
PUSHER_KEY: ""
PUSHER_SECRET: ""
QUEUE_DRIVER: sync
REDIS_HOST: crater-queue
REDIS_PORT: "6379"
SANCTUM_STATEFUL_DOMAINS: crater.your-domain.com
SESSION_DOMAIN: crater.your-domain.com
SESSION_DRIVER: cookie
SESSION_LIFETIME: "1440"
TRUSTED_PROXIES: "*"
TZ: UTC
volumes:
- crater-web:/var/www/html
crater-db:
image: mysql:8.0.30
environment:
MYSQL_DATABASE: crater
MYSQL_PASSWORD: abbff9e7cf0f6877
MYSQL_ROOT_PASSWORD: 98b6473bd97f4728
MYSQL_USER: crater
TZ: UTC
volumes:
- crater-db-data:/var/lib/mysql
- crater-db-dump:/docker-entrypoint-initdb.d
crater-queue:
image: redis:7.0.5
volumes:
- crater-queue:/data
volumes:
crater-web: {}
crater-db-data: {}
crater-db-dump: {}
crater-queue: {}
Then run:
docker compose up -d
Access
Once started, access your app at http://localhost:80
Why Self-Host Crater?
Full Data Ownership
Your data stays on your servers. No third-party access.
No Monthly Fees
Pay only for your server. No per-seat or usage charges.
Complete Control
Customize, backup, and scale on your own terms.
Privacy & Compliance
Meet GDPR, HIPAA, or internal security requirements.
Technical Details
Want to go faster?
Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.
Install on any Linux server:
sh -c "$(curl -sSL https://get.senate.sh)"