solidtime update
This commit is contained in:
142
solidtime_docker_setup.yml
Normal file
142
solidtime_docker_setup.yml
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
- name: Setup Solidtime Configuration Files
|
||||||
|
hosts: all
|
||||||
|
become: yes
|
||||||
|
vars_prompt:
|
||||||
|
- name: install_dir
|
||||||
|
prompt: "Where should Solidtime be installed?"
|
||||||
|
default: "/opt/solidtime"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: app_url
|
||||||
|
prompt: "What is the App URL? (e.g., https://time.example.com or http://localhost:8000)"
|
||||||
|
default: "http://localhost:8000"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: db_host
|
||||||
|
prompt: "PostgreSQL Host (leave as 'db' if using the included containerized database)"
|
||||||
|
default: "db"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: db_port
|
||||||
|
prompt: "PostgreSQL Port (leave as '5432' if using the included containerized database)"
|
||||||
|
default: "5432"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: db_name
|
||||||
|
prompt: "PostgreSQL Database Name"
|
||||||
|
default: "solidtime"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: db_user
|
||||||
|
prompt: "PostgreSQL Database User"
|
||||||
|
default: "solidtimeuser"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: db_password
|
||||||
|
prompt: "PostgreSQL Database Password"
|
||||||
|
private: yes
|
||||||
|
confirm: yes
|
||||||
|
|
||||||
|
- name: app_key
|
||||||
|
prompt: "Laravel APP_KEY (leave blank to generate later via CLI)"
|
||||||
|
default: ""
|
||||||
|
private: no
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Ensure installation directory exists
|
||||||
|
file:
|
||||||
|
path: "{{ install_dir }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Create docker-compose.yml
|
||||||
|
copy:
|
||||||
|
dest: "{{ install_dir }}/docker-compose.yml"
|
||||||
|
mode: '0644'
|
||||||
|
content: |
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: ghcr.io/solidtime-io/solidtime:latest
|
||||||
|
container_name: solidtime-app
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8000:8000" # Change the left port if you are putting this behind a reverse proxy
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- CONTAINER_MODE=http
|
||||||
|
- AUTO_DB_MIGRATE=true
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
scheduler:
|
||||||
|
image: ghcr.io/solidtime-io/solidtime:latest
|
||||||
|
container_name: solidtime-scheduler
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- CONTAINER_MODE=scheduler
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
worker:
|
||||||
|
image: ghcr.io/solidtime-io/solidtime:latest
|
||||||
|
container_name: solidtime-worker
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- CONTAINER_MODE=worker
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
solidtime_db_data:
|
||||||
|
|
||||||
|
- name: Create .env file
|
||||||
|
copy:
|
||||||
|
dest: "{{ install_dir }}/.env"
|
||||||
|
mode: '0600'
|
||||||
|
content: |
|
||||||
|
# Solidtime Environment Variables
|
||||||
|
APP_NAME="Solidtime"
|
||||||
|
APP_ENV=production
|
||||||
|
APP_URL={{ app_url }}
|
||||||
|
APP_KEY={{ app_key }}
|
||||||
|
|
||||||
|
# Database Configuration
|
||||||
|
DB_CONNECTION=pgsql
|
||||||
|
DB_HOST=db
|
||||||
|
DB_PORT=5432
|
||||||
|
DB_DATABASE={{ db_name }}
|
||||||
|
DB_USERNAME={{ db_user }}
|
||||||
|
DB_PASSWORD={{ db_password }}
|
||||||
|
|
||||||
|
# Enable User Registration (set to true to allow open signups)
|
||||||
|
APP_ENABLE_REGISTRATION=false
|
||||||
|
|
||||||
|
# Queue and Cache
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
CACHE_STORE=database
|
||||||
|
|
||||||
|
# Mail Configuration (Adjust once an SMTP server is available)
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=1025
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
- name: Display post-installation instructions
|
||||||
|
debug:
|
||||||
|
msg:
|
||||||
|
- "Success! Solidtime configuration files have been staged at {{ install_dir }}"
|
||||||
|
- "To generate your APP_KEY and Passport keys (if you left APP_KEY blank), CD into the directory and run:"
|
||||||
|
- " docker compose run --rm scheduler php artisan self-host:generate-keys"
|
||||||
|
- "Copy the outputs into your .env file, then you can safely run 'docker compose up -d'."
|
||||||
Reference in New Issue
Block a user