mirror of
https://github.com/runyanjake/olomana.git
synced 2025-10-04 13:27:28 -07:00
Compare commits
6 Commits
bad1fc817e
...
dd70ad3dbd
Author | SHA1 | Date | |
---|---|---|---|
dd70ad3dbd | |||
c29775050c | |||
bc87de3f2a | |||
7d44cc150e | |||
64cc36b31f | |||
c3b3737731 |
6
productivity/flatnotes/.env.example
Normal file
6
productivity/flatnotes/.env.example
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
PUID=1000
|
||||||
|
PGID=1000
|
||||||
|
FLATNOTES_AUTH_TYPE="password"
|
||||||
|
FLATNOTES_USERNAME="user"
|
||||||
|
FLATNOTES_PASSWORD="password"
|
||||||
|
FLATNOTES_SECRET_KEY="aLongRandomSeriesOfCharacters"
|
1
productivity/flatnotes/.gitignore
vendored
Normal file
1
productivity/flatnotes/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.env
|
0
productivity/flatnotes/README.md
Normal file
0
productivity/flatnotes/README.md
Normal file
21
productivity/flatnotes/docker-compose.yml
Normal file
21
productivity/flatnotes/docker-compose.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
flatnotes:
|
||||||
|
container_name: flatnotes
|
||||||
|
image: dullage/flatnotes:latest
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- "/pwspool/software/flatnotes:/data"
|
||||||
|
- "/pwspool/software/flatnotes/index"
|
||||||
|
restart: unless-stopped
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.flatnotes.rule=Host(`flatnotes.whitney.rip`)
|
||||||
|
- traefik.http.routers.flatnotes.tls=true
|
||||||
|
- traefik.http.routers.flatnotes.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.flatnotes.loadbalancer.server.port=8080
|
4
productivity/openproject/.env.example
Normal file
4
productivity/openproject/.env.example
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
OPENPROJECT_SECRET_KEY_BASE=change-me-to-a-secure-random-value
|
||||||
|
OPENPROJECT_HOST__NAME=openproject.example.com
|
||||||
|
OPENPROJECT_HTTPS=true
|
||||||
|
OPENPROJECT_DEFAULT__LANGUAGE=en
|
1
productivity/openproject/.gitignore
vendored
Normal file
1
productivity/openproject/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.env
|
8
productivity/openproject/README.md
Normal file
8
productivity/openproject/README.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# OpenProject
|
||||||
|
Open source project management software.
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
1. Configure `.env`, see example.
|
||||||
|
- Note to specify `OPENPROJECT_HOST__NAME` without protocol.
|
||||||
|
2. Configure users.
|
||||||
|
- Default admin user is `admin:admin`.
|
21
productivity/openproject/docker-compose.yml
Normal file
21
productivity/openproject/docker-compose.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
openproject:
|
||||||
|
image: openproject/openproject:16
|
||||||
|
container_name: openproject
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- traefik
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/openproject/data:/var/openproject/assets
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.openproject.rule=Host(`pm.whitney.rip`)
|
||||||
|
- traefik.http.routers.openproject.tls=true
|
||||||
|
- traefik.http.routers.openproject.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.openproject.loadbalancer.server.port=8080
|
||||||
|
|
21
productivity/taiga/.env.example
Normal file
21
productivity/taiga/.env.example
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
DOMAIN=taiga.example.com
|
||||||
|
TAIGA_SECRET_KEY=change-this-to-a-secure-random-string
|
||||||
|
TAIGA_ADMIN_USERNAME=admin
|
||||||
|
TAIGA_ADMIN_EMAIL=admin@example.com
|
||||||
|
TAIGA_ADMIN_PASSWORD=admin
|
||||||
|
|
||||||
|
# Postgres
|
||||||
|
POSTGRES_HOST=postgres
|
||||||
|
POSTGRES_PORT=5432
|
||||||
|
POSTGRES_USER=taiga_user
|
||||||
|
POSTGRES_PASSWORD=securepassword
|
||||||
|
POSTGRES_DB=taiga
|
||||||
|
|
||||||
|
# RabbitMQ
|
||||||
|
RABBITMQ_HOST=rabbitmq
|
||||||
|
RABBITMQ_USER=taiga_user
|
||||||
|
RABBITMQ_PASSWORD=securepassword
|
||||||
|
|
||||||
|
CELERY_ENABLED=False
|
||||||
|
CELERY_BROKER=amqp://${RABBITMQ_USER}:${RABBITMQ_PASSWORD}@${RABBITMQ_HOST}:5672/
|
||||||
|
CELERY_ALWAYS_EAGER=False
|
1
productivity/taiga/.gitignore
vendored
Normal file
1
productivity/taiga/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.env
|
12
productivity/taiga/README.md
Normal file
12
productivity/taiga/README.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Taiga
|
||||||
|
Open source Agile project management tool.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
1. Fill out `.env` from the example. You are supposed to be able to set admin credentials here but I had issues with that. Use a util like `openssl` for key generation.
|
||||||
|
2. Setup credentials using python util:
|
||||||
|
```
|
||||||
|
docker exec -it taiga-back python3 manage.py createsuperuser --username admin --email admin@example.com
|
||||||
|
```
|
||||||
|
```
|
||||||
|
```
|
||||||
|
Note: I had issues doing this call while RabbitMQ was enabled via this Celery util. I set `CELERY_ENABLED=false` to get the call to work. This is supposed to have us use some slower utility as an alternative. AI assured me I could re-enable after the fact but I did not just to be safe.
|
80
productivity/taiga/docker-compose.yml
Normal file
80
productivity/taiga/docker-compose.yml
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
taiga:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
services:
|
||||||
|
taiga-front:
|
||||||
|
image: taigaio/taiga-front:latest
|
||||||
|
container_name: taiga-front
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- TAIGA_API_URL=https://${DOMAIN}/api/v1
|
||||||
|
- TAIGA_EVENTS_URL=wss://${DOMAIN}/events
|
||||||
|
networks:
|
||||||
|
- taiga
|
||||||
|
- traefik
|
||||||
|
depends_on:
|
||||||
|
- taiga-back
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.taiga.rule=Host(`${DOMAIN}`)
|
||||||
|
- traefik.http.routers.taiga.tls=true
|
||||||
|
- traefik.http.routers.taiga.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.taiga.loadbalancer.server.port=80
|
||||||
|
|
||||||
|
taiga-back:
|
||||||
|
image: taigaio/taiga-back:latest
|
||||||
|
container_name: taiga-back
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/taiga/back/data:/taiga-back/data
|
||||||
|
- /pwspool/software/taiga/back/media:/taiga-back/media
|
||||||
|
networks:
|
||||||
|
- taiga
|
||||||
|
- traefik
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- rabbitmq
|
||||||
|
- taiga-events
|
||||||
|
labels:
|
||||||
|
- traefik.http.routers.taiga-back.rule=Host(`${DOMAIN}`) && PathPrefix(`/api`)
|
||||||
|
- traefik.http.routers.taiga-back.tls=true
|
||||||
|
- traefik.http.routers.taiga-back.tls.certresolver=lets-encrypt
|
||||||
|
- traefik.http.services.taiga-back.loadbalancer.server.port=8000
|
||||||
|
|
||||||
|
taiga-events:
|
||||||
|
image: taigaio/taiga-events:latest
|
||||||
|
container_name: taiga-events
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- TAIGA_SECRET=${TAIGA_SECRET_KEY}
|
||||||
|
- TAIGA_BACK_HOST=http://taiga-back:8000
|
||||||
|
networks:
|
||||||
|
- taiga
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:13
|
||||||
|
container_name: taiga-db
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- taiga
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/taiga/db:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
image: rabbitmq:3-management
|
||||||
|
container_name: taiga-rabbitmq
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- taiga
|
||||||
|
environment:
|
||||||
|
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
|
||||||
|
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
|
||||||
|
|
23
software/workflow/n8n/.env.example
Normal file
23
software/workflow/n8n/.env.example
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# n8n environment variables
|
||||||
|
N8N_HOST=n8n.example.com
|
||||||
|
N8N_PORT=5678
|
||||||
|
WEBHOOK_TUNNEL_URL=https://n8n.example.com # if you want public webhooks
|
||||||
|
|
||||||
|
# n8n encryption key
|
||||||
|
N8N_ENCRYPTION_KEY=1234567890abcdef1234567890abcdef
|
||||||
|
|
||||||
|
# n8n user authentication
|
||||||
|
N8N_BASIC_AUTH_ACTIVE=true
|
||||||
|
N8N_BASIC_AUTH_USER=admin
|
||||||
|
N8N_BASIC_AUTH_PASSWORD=supersecretpassword
|
||||||
|
|
||||||
|
# Database
|
||||||
|
DB_TYPE=postgresdb
|
||||||
|
DB_POSTGRESDB_HOST=db
|
||||||
|
DB_POSTGRESDB_PORT=5432
|
||||||
|
DB_POSTGRESDB_DATABASE=n8n
|
||||||
|
DB_POSTGRESDB_USER=n8n
|
||||||
|
DB_POSTGRESDB_PASSWORD=n8npassword
|
||||||
|
|
||||||
|
# Other settings
|
||||||
|
GENERIC_TIMEZONE=America/Los_Angeles
|
1
software/workflow/n8n/.gitignore
vendored
Normal file
1
software/workflow/n8n/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.env
|
6
software/workflow/n8n/README.md
Normal file
6
software/workflow/n8n/README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# N8N
|
||||||
|
Workflow automation, selfhosted. See `https://github.com/n8n-io/n8n`.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
1. After folder structure is created, first time setup will fail because we don't have access to the file system.
|
||||||
|
- give ownership to user 1000, or set a specific user for n8n to run as.
|
54
software/workflow/n8n/docker-compose.yml
Normal file
54
software/workflow/n8n/docker-compose.yml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
n8n:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
services:
|
||||||
|
n8n:
|
||||||
|
image: n8nio/n8n
|
||||||
|
container_name: n8n
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- n8n
|
||||||
|
- traefik
|
||||||
|
environment:
|
||||||
|
- N8N_HOST=${N8N_HOST}
|
||||||
|
- N8N_PORT=${N8N_PORT}
|
||||||
|
- WEBHOOK_TUNNEL_URL=${WEBHOOK_TUNNEL_URL}
|
||||||
|
- N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE}
|
||||||
|
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
|
||||||
|
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
|
||||||
|
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
|
||||||
|
- DB_TYPE=${DB_TYPE}
|
||||||
|
- DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
|
||||||
|
- DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
|
||||||
|
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
|
||||||
|
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
|
||||||
|
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
|
||||||
|
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/n8n/.n8n:/home/node/.n8n
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.n8n.rule=Host(`n8n.whitney.rip`)"
|
||||||
|
- "traefik.http.routers.n8n.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.n8n.tls=true"
|
||||||
|
- "traefik.http.routers.n8n.tls.certresolver=lets-encrypt"
|
||||||
|
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:15
|
||||||
|
container_name: n8n-db
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- n8n
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${DB_POSTGRESDB_USER}
|
||||||
|
POSTGRES_PASSWORD: ${DB_POSTGRESDB_PASSWORD}
|
||||||
|
POSTGRES_DB: ${DB_POSTGRESDB_DATABASE}
|
||||||
|
volumes:
|
||||||
|
- /pwspool/software/n8n/data:/var/lib/postgresql/data
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user