Merge branch 'next' into vaultwarden-fix

This commit is contained in:
Evan
2024-05-27 17:45:00 +08:00
committed by GitHub
86 changed files with 1475 additions and 2302 deletions

View File

@@ -0,0 +1,115 @@
# documentation: https://www.chatwoot.com/docs/self-hosted/
# slogan: Delightful customer relationships at scale.
# tags: chatwoot,chat,api,open,source,rails,redis,postgresql,sidekiq
# logo: svgs/chatwoot.svg
# port: 3000
services:
rails:
image: chatwoot/chatwoot:latest
depends_on:
- postgres
- redis
environment:
- SERVICE_FQDN_CHATWOOT_3000
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
- FORCE_SSL=false
- ENABLE_ACCOUNT_SIGNUP=false
- REDIS_URL=redis://default@redis:6379
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
- REDIS_OPENSSL_VERIFY_MODE=none
- POSTGRES_DATABASE=chatwoot
- POSTGRES_HOST=postgres
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- RAILS_MAX_THREADS=5
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
- SMTP_DOMAIN=${CHATWOOT_SMTP_DOMAIN}
- SMTP_ENABLE_STARTTLS_AUTO=${CHATWOOT_SMTP_ENABLE_STARTTLS_AUTO}
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
- ACTIVE_STORAGE_SERVICE=local
entrypoint: docker/entrypoints/rails.sh
command: sh -c "bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0"
volumes:
- rails-data:/app/storage
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:3000"]
interval: 5s
timeout: 20s
retries: 10
sidekiq:
image: chatwoot/chatwoot:latest
depends_on:
- postgres
- redis
environment:
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
- FORCE_SSL=false
- ENABLE_ACCOUNT_SIGNUP=false
- REDIS_URL=redis://default@redis:6379
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
- REDIS_OPENSSL_VERIFY_MODE=none
- POSTGRES_DATABASE=chatwoot
- POSTGRES_HOST=postgres
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- RAILS_MAX_THREADS=5
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
- SMTP_DOMAIN=${CHATWOOT_SMTP_DOMAIN}
- SMTP_ENABLE_STARTTLS_AUTO=${CHATWOOT_SMTP_ENABLE_STARTTLS_AUTO}
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
- ACTIVE_STORAGE_SERVICE=local
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
volumes:
- sidekiq-data:/app/storage
healthcheck:
test: ["CMD-SHELL", "bundle exec rails runner 'puts Sidekiq.redis(&:info)' > /dev/null 2>&1"]
interval: 30s
timeout: 10s
retries: 3
postgres:
image: postgres:12
restart: always
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=chatwoot
- POSTGRES_USER=$SERVICE_USER_POSTGRES_USER
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $SERVICE_USER_POSTGRES_USER -d chatwoot -h 127.0.0.1"]
interval: 30s
timeout: 10s
retries: 5
redis:
image: redis:alpine
restart: always
command: ["sh", "-c", "redis-server --requirepass \"$SERVICE_PASSWORD_REDIS\""]
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "$SERVICE_PASSWORD_REDIS", "PING"]
interval: 30s
timeout: 10s
retries: 5

View File

@@ -0,0 +1,36 @@
# documentation: https://www.docuseal.co/
# slogan: Document Signing for Everyone free forever for individuals, extensible for businesses and developers. Open Source Alternative to DocuSign, PandaDoc and more.
# tags: documentation
# logo: svgs/docuseal.png
# port: 3000
services:
docuseal:
image: docuseal/docuseal:latest
environment:
- SERVICE_FQDN_DOCUSEAL_3000
- HOST=${SERVICE_FQDN_DOCUSEAL}
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/${POSTGRES_DB}
volumes:
- docuseal-data:/data
depends_on:
postgresql:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3000"]
interval: 5s
timeout: 20s
retries: 10
postgresql:
image: postgres:16-alpine
volumes:
- postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_DB=${POSTGRES_DB:-docuseal}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,19 @@
# documentation: https://www.docuseal.co/
# slogan: Document Signing for Everyone free forever for individuals, extensible for businesses and developers. Open Source Alternative to DocuSign, PandaDoc and more.
# tags: documentation
# logo: svgs/docuseal.png
# port: 3000
services:
docuseal:
image: docuseal/docuseal:latest
environment:
- SERVICE_FQDN_DOCUSEAL_3000
- HOST=${SERVICE_FQDN_DOCUSEAL}
volumes:
- docuseal-data:/data
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3000"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,92 @@
# documentation: https://github.com/glanceapp/glance
# slogan: A self-hosted dashboard that puts all your feeds in one place.
# tags: dashboard, server, applications, interface, rrss
# logo: svgs/glance.png
# port: 8080
services:
glance:
image: glanceapp/glance:latest
environment:
- SERVICE_FQDN_GLANCE_8080
volumes:
- type: bind
source: ./glance-settings
target: /app/glance.yml
content: |
pages:
- name: Home
server:
host: 0.0.0.0
port: 8080
assets-path: /user/assets
columns:
- size: small
widgets:
- type: calendar
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://ciechanow.ski/atom.xml
- url: https://www.joshwcomeau.com/rss.xml
title: Josh Comeau
- url: https://samwho.dev/rss.xml
- url: https://awesomekling.github.io/feed.xml
- url: https://ishadeed.com/feed.xml
title: Ahmad Shadeed
- type: twitch-channels
channels:
- theprimeagen
- heyandras
- cohhcarnage
- christitustech
- blurbs
- asmongold
- jembawls
- size: full
widgets:
- type: hacker-news
- type: videos
channels:
- UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- UCv6J_jJa8GJqFwQNgNrMuww # ServeTheHome
- UCOk-gHyjcWZNj3Br4oxwh0A # Techno Tim
- type: reddit
subreddit: selfhosted
- size: small
widgets:
- type: weather
location: London, United Kingdom
- type: stocks
stocks:
- symbol: SPY
name: S&P 500
- symbol: BTC-USD
name: Bitcoin
- symbol: NVDA
name: NVIDIA
- symbol: AAPL
name: Apple
- symbol: MSFT
name: Microsoft
- symbol: GOOGL
name: Google
- symbol: AMD
name: AMD
- symbol: RDDT
name: Reddit
- glance-assets:/user/assets
healthcheck:
test: ["CMD", "echo", "[+] Should be working fine."]
interval: 5s
timeout: 20s
retries: 10

117
templates/compose/huly.yaml Normal file
View File

@@ -0,0 +1,117 @@
# ignore: true
# documentation: https://huly.io/
# slogan: Open Source All-in-One Project Management Platform
# tags: linear,jira,slack,project,management,notion,motion
# port: 8080
services:
mongodb:
image: "mongo:7-jammy"
container_name: mongodb
environment:
- PUID=1000
- PGID=1000
volumes:
- huly-db:/data/db
minio:
image: "minio/minio"
command: server /data --address ":9000" --console-address ":9001"
volumes:
- huly-files:/data
elastic:
image: "elasticsearch:7.14.2"
command: |
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment || yes | ./bin/elasticsearch-plugin install --silent ingest-attachment;
/usr/local/bin/docker-entrypoint.sh eswrapper"
volumes:
- huly-elastic:/usr/share/elasticsearch/data
environment:
- ELASTICSEARCH_PORT_NUMBER=9200
- BITNAMI_DEBUG=true
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms1024m -Xmx1024m
- http.cors.enabled=true
- http.cors.allow-origin=http://localhost:8082
healthcheck:
test: curl -s http://127.0.0.1:9200/_cluster/health | grep -vq '"status":"red"'
interval: 5s
retries: 10
account:
image: hardcoreeng/account:v0.6.246
environment:
- SERVICE_FQDN_HULY_3000
- SERVER_PORT=3000
- SERVER_SECRET=$SERVICE_PASSWORD_SECRET
- MONGO_URL=mongodb://mongodb:27017
- TRANSACTOR_URL=ws://transactor:3333
- ENDPOINT_URL=ws://transactor:3333
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- FRONT_URL=http://front:8080
- INIT_WORKSPACE=demo-tracker
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://localhost:3000
front:
image: hardcoreeng/front:v0.6.246
environment:
- SERVICE_FQDN_HULY_8080
- MONGO_URL=mongodb://mongodb:27017
- SERVER_PORT=8080
- SERVER_SECRET=$SERVICE_PASSWORD_SECRET
- ACCOUNTS_URL=http://account:3000
- REKONI_URL=http://rekoni:4004
- CALENDAR_URL=http://localhost:8095
- GMAIL_URL=http://localhost:8088
- TELEGRAM_URL=http://localhost:8086
- UPLOAD_URL=/files
- TRANSACTOR_URL=ws://transactor:3333
- ELASTIC_URL=http://elastic:9200
- COLLABORATOR_URL=ws://collaborator:3078
- COLLABORATOR_API_URL=http://collaborator:3078
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- TITLE=Huly Self Hosted
- DEFAULT_LANGUAGE=en
- LAST_NAME_FIRST=true
restart: unless-stopped
collaborator:
image: hardcoreeng/collaborator:v0.6.246
environment:
- COLLABORATOR_PORT=3078
- SECRET=secret
- ACCOUNTS_URL=http://account:3000
- TRANSACTOR_URL=ws://transactor:3333
- UPLOAD_URL=/files
- MONGO_URL=mongodb://mongodb:27017
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
transactor:
image: hardcoreeng/transactor:v0.6.246
environment:
- SERVER_PORT=3333
- ELASTIC_INDEX_NAME=huly
- SERVER_SECRET=$SERVICE_PASSWORD_SECRET
- SERVER_CURSOR_MAXTIMEMS=30000
- ELASTIC_URL=http://elastic:9200
- MONGO_URL=mongodb://mongodb:27017
- METRICS_CONSOLE=false
- METRICS_FILE=metrics.txt
- MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin
- REKONI_URL=http://rekoni:4004
- FRONT_URL=http://localhost:8087
- SERVER_PROVIDER=ws
- ACCOUNTS_URL=http://account:3000
- LAST_NAME_FIRST=true
- UPLOAD_URL=/files
restart: unless-stopped
rekoni:
image: hardcoreeng/rekoni-service:latest
deploy:
resources:
limits:
memory: 500M

View File

@@ -0,0 +1,20 @@
# documentation: https://www.mediawiki.org
# slogan: MediaWiki is a collaboration and documentation platform brought to you by a vibrant community.
# tags: wiki, collaboration, documentation
# logo: svgs/mediawiki.ico
# port: 80
services:
mediawiki:
image: mediawiki:latest
environment:
- SERVICE_FQDN_MEDIAWIKI_80
volumes:
- mediawiki-images:/var/www/html/images
- mediawiki-sqlite:/var/www/html/data
- ./LocalSettings.php:/var/www/html/LocalSettings.php
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -285,7 +285,7 @@ services:
"CMD",
"node",
"-e",
"require('http').get('http://127.0.0.1:3000/api/profile', (r) => {if (r.statusCode !== 200) throw new Error(r.statusCode)})",
"require('http').get('http://127.0.0.1:3000/api/profile', (r) => {if (r.statusCode !== 200) process.exit(1); else process.exit(0); }).on('error', () => process.exit(1))",
]
timeout: 5s
interval: 5s
@@ -911,6 +911,7 @@ services:
- PGRST_APP_SETTINGS_JWT_SECRET=${SERVICE_PASSWORD_JWT}
- PGRST_APP_SETTINGS_JWT_EXP=${JWT_EXPIRY:-3600}
command: "postgrest"
exclude_from_hc: true
supabase-auth:
image: supabase/gotrue:v2.149.0
depends_on:
@@ -1054,7 +1055,7 @@ services:
content: |
#!/bin/sh
/usr/bin/mc alias set supabase-minio http://supabase-minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD};
/usr/bin/mc mb supabase-minio/stub;
/usr/bin/mc mb --ignore-existing supabase-minio/stub;
exit 0
supabase-storage:
@@ -1162,6 +1163,11 @@ services:
depends_on:
supabase-analytics:
condition: service_healthy
healthcheck:
test: ["CMD", "echo", "Edge Functions is healthy"]
timeout: 5s
interval: 5s
retries: 3
environment:
- JWT_SECRET=${SERVICE_PASSWORD_JWT}
- SUPABASE_URL=http://supabase-kong:8000