Solidtime - Docker compose
Rychlý návod pro instalaci SolidTime pomocí Dockeru
Rychlý návod pro instalaci Solidtime jako docker kontejner. Solidtime je moderní time tracker. Nabízí sledování času, práce na projektech, peníze, reporty,...
Web: https://www.solidtime.io/
Kompletní návod: https://docs.solidtime.io/self-hosting/guides/docker
1) Konfigurační soubory
APP_NAME="solidtime"
VITE_APP_NAME="solidtime"
APP_ENV="production"
APP_DEBUG="false"
APP_URL="https://yourDomain"
APP_FORCE_HTTPS="true"
APP_ENABLE_REGISTRATION="true"
TRUSTED_PROXIES="0.0.0.0/0,2000:0:0:0:0:0:0:0/3"
# Authentication
APP_KEY="GeneratedPrivateKey"
PASSPORT_PUBLIC_KEY="GeneratedPublicKey"
SUPER_ADMINS="yourEmail"
# Logging
LOG_CHANNEL="stderr_daily"
LOG_LEVEL="debug"
# Database
DB_CONNECTION="pgsql"
DB_HOST="database"
DB_PORT="5432"
DB_SSLMODE="require"
DB_DATABASE="solidtime"
DB_USERNAME="dbUsername"
DB_PASSWORD="dbPassword"
# Mail
MAIL_MAILER="smtp"
MAIL_HOST="smtp.yourprovider.com"
MAIL_PORT="587"
MAIL_ENCRYPTION="tls"
MAIL_FROM_ADDRESS="noreply@myemail.com"
MAIL_FROM_NAME="emailName"
MAIL_USERNAME="emailUsername"
MAIL_PASSWORD="emailPassword"
# Queue
QUEUE_CONNECTION="database"
# File storage
FILESYSTEM_DISK="local"
PUBLIC_FILESYSTEM_DISK="public"
# Services
GOTENBERG_URL="http://gotenberg:3000"
laravel.env
APP_DOMAIN=yourdomain.com
DB_DATABASE=solidtimedb
DB_USERNAME=dbUser
FORWARD_APP_PORT=8000
FORWARD_DB_PORT=5432
DB_PASSWORD=sbPassword
SOLIDTIME_IMAGE_TAG=latest
.env
services:
solidtime:
restart: always
networks:
- proxy-network
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
user: "1000:1000"
expose:
- "8000"
volumes:
- "app-storage:/var/www/html/storage"
- "./logs:/var/www/html/storage/logs"
- "./app-storage:/var/www/html/storage/app"
environment:
CONTAINER_MODE: http
healthcheck:
test: [ "CMD", "curl", "--fail", "http://localhost:8000/health-check/up" ]
env_file:
- laravel.env
depends_on:
- database
scheduler:
restart: always
networks:
- shared-network
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
user: "1000:1000"
volumes:
- "app-storage:/var/www/html/storage"
- "./logs:/var/www/html/storage/logs"
- "./app-storage:/var/www/html/storage/app"
environment:
CONTAINER_MODE: scheduler
healthcheck:
test: [ "CMD", "healthcheck" ]
env_file:
- laravel.env
depends_on:
- database
queue:
restart: always
networks:
- proxy-network
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
user: "1000:1000"
volumes:
- "app-storage:/var/www/html/storage"
- "./logs:/var/www/html/storage/logs"
- "./app-storage:/var/www/html/storage/app"
environment:
CONTAINER_MODE: worker
WORKER_COMMAND: "php /var/www/html/artisan queue:work"
healthcheck:
test: [ "CMD", "healthcheck" ]
env_file:
- laravel.env
depends_on:
- database
database:
restart: always
networks:
- shared-network
image: 'postgres:15'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'database-storage:/var/lib/postgresql/data'
healthcheck:
test:
- CMD
- pg_isready
- '-q'
- '-d'
- '${DB_DATABASE}'
- '-U'
- '${DB_USERNAME}'
retries: 3
timeout: 5s
gotenberg:
image: gotenberg/gotenberg:8
networks:
- proxy-network
healthcheck:
test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ]
networks:
proxy-network:
external: true
volumes:
database-storage:
app-storage:
docker-compose.yaml
2) Vytvoření dat
Po připojení dovnitř kontejneru je třeba pustit migrace:
php artisan migratePak vygenerovat klíč do konfiguračních souborů:
php artisan self-host:generate-keysPrvního uživatele lze vytvořit takto:
php artidan admin:user:create "jmeno prijmeni" "email" --verify-email --ask-for-password3) Práva na složky
Pokud máte problém s přístupem do složek pro kontejner, zkuste je přidat do admin skupiny:
sudo chmod +R 1000:1000 app_storage logs