Back to Apps
Crater

Deploy Crater on Your Own Server

Open Source Invoicing Solution for Individuals & Businesses

🛠️ Developer Tools

Want to deploy Crater on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

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.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

General
3

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
4

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)"