Compare commits

...

8 Commits

Author SHA1 Message Date
Whitney
48ec8437ca
Create README.md for design tools overview
Add initial README with design tools and pros/cons.
2026-05-22 01:11:12 -07:00
Whitney
56bda0bd4f
Create README.md 2026-05-22 01:10:10 -07:00
Whitney
7b910ff083
Create README.md for infrastructure overview
Added infrastructure documentation for various tools.
2026-05-22 01:07:12 -07:00
Whitney
a3d1bf849f
Update README.md 2026-05-22 01:04:46 -07:00
Whitney
3eb1b3dd16
Update README.md 2026-05-22 01:02:35 -07:00
63d1d30622 Project Management README + leantime 2026-05-22 01:00:34 -07:00
892a376889 Updates 2026-05-22 00:59:55 -07:00
Whitney
9f72e1c600
Update README.md 2026-05-22 00:41:10 -07:00
13 changed files with 264 additions and 14 deletions

View File

@ -2,6 +2,7 @@
Docker containers relating to AI topics - LLMs, Generative AI, etc. Docker containers relating to AI topics - LLMs, Generative AI, etc.
## Table of Contents ## Table of Contents
- [Cline](cline/)
- [Comfy UI](comfyui/) - [Comfy UI](comfyui/)
- [Open WebUI](openwebui/) - [Open WebUI](openwebui/)

View File

@ -1,11 +1,14 @@
# Software Development # Software Development
Utilities for developing, hosting, and managing software. Utilities for developing, hosting, and managing software.
## Table of Contents ## Design
- [Code Server](code-server/) Design softwares for planning the look and feel of your application.
- [Gitea](gitea/)
- [Grafana](grafana/)
- [Jenkins](jenkins/)
- [Portainer](portainer/)
- [Traefik](traefik/)
## Documentation
Knowledge bases for storing your organization's data.
## Infrastructure
Services that help you write and host code. CI/CD, observability, and general infrastructure tooling.
## Project Management
Project management software (PMS) for keeping projects organized and on track.

View File

@ -0,0 +1,13 @@
# Design
## Excalidraw
A self hosted whiteboarding software.
Pros:
- Simple to use, intuitive controls.
Cons:
- Uses comic sans by default.
## Penpot
Self hosted Figma.

View File

@ -0,0 +1,17 @@
# Documentation
## VS Code Server
A vs code server useable from the browser of any machine.
## Docmost
A Jira-style knowledge base with good UI and good text controls.
## Flatnotes
A simple note management software.
## Karakeep
A simple note management software.
Cons:
- Has a very large panel arrangement of your content.
-

View File

@ -11,7 +11,7 @@ services:
- db - db
- redis - redis
environment: environment:
APP_URL: "https://documentation.whitney.rip" APP_URL: "https://docs.whitney.rip"
APP_SECRET: "${APP_SECRET}" APP_SECRET: "${APP_SECRET}"
DATABASE_URL: "postgresql://docmost:${POSTGRES_PASSWORD}@db:5432/docmost" DATABASE_URL: "postgresql://docmost:${POSTGRES_PASSWORD}@db:5432/docmost"
REDIS_URL: "redis://redis:6379" REDIS_URL: "redis://redis:6379"
@ -23,7 +23,7 @@ services:
- docmost - docmost
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.docmost.rule=Host(`documentation.whitney.rip`)" - "traefik.http.routers.docmost.rule=Host(`docs.whitney.rip`)"
- "traefik.http.routers.docmost.entrypoints=websecure" - "traefik.http.routers.docmost.entrypoints=websecure"
- "traefik.http.routers.docmost.tls.certresolver=letsencrypt" - "traefik.http.routers.docmost.tls.certresolver=letsencrypt"
- "traefik.http.services.docmost.loadbalancer.server.port=3000" - "traefik.http.services.docmost.loadbalancer.server.port=3000"

View File

@ -0,0 +1,19 @@
# Infrastructure
## Gitea
A self hosted Github alternative.
## Grafana
Data visualizer for your time series.
## Jenkins
Playbook orchestration tool.
## Mailserver
A custom mail server.
## Portainer
A docker container visualization tool.
## Traefik
A reverse proxy that routes docker container traffic really well.

View File

@ -0,0 +1,48 @@
# Project Management
Tools for tracking the progress of projects and their tasks.
## Leantime
This is built for creatives and has a lot of visual polish and (in my opinion) a very cluttered view.
Pros
- Design is pleasant to look at, feels somewhat modern.
Cons
- This is focused more towards personal time management rather than project management. Cannot hide certain modules per project. All features really rely around tracking time, less suited for one off grab-bag task items.
## Openproject
Fully featured project managment software, with a plain design.
Pros
- Many customization options, such as removing modules from projects for features you don't use. Quite a lot of features in general.
Cons
- UI looks old, not a great fit for mobile browsing.
## Plane
Modern design, nearly best in class. Has sprints (
Pros
- Best polish for UI of the options I've tried.
Cons
- Mobile usage gated behind $6/seat paywall.
## Planka
A solid self hosted Kanban board.
Pros
- Visually nice, works good on mobile/desktop/tablet.
Cons
- No sprint planning.
## Taiga
A decent looking PMS software.
Pros
- Allows for sprint planning, though it's not intuitive (to me).
Cons
- You cannot get rid of some of the "completion status" visuals.

View File

@ -0,0 +1,30 @@
# Public hostname (no scheme)
DOMAIN=leantime.example.com
# Full base URL (include scheme) — used by Leantime for cookies and links
LEAN_APP_URL=https://leantime.example.com
# Pin a version, or leave unset for :latest
LEAN_VERSION=latest
# Session salt — generate with `openssl rand -base64 32`
LEAN_SESSION_PASSWORD=
LEAN_SESSION_SECURE=true
# Timezone
LEAN_DEFAULT_TIMEZONE=America/Los_Angeles
# Database
MYSQL_ROOT_PASSWORD=
LEAN_DB_DATABASE=leantime
LEAN_DB_USER=leantime
LEAN_DB_PASSWORD=
# Email (optional; leave LEAN_EMAIL_USE_SMTP=false to use php mail())
LEAN_EMAIL_RETURN=
LEAN_EMAIL_USE_SMTP=false
LEAN_EMAIL_SMTP_HOSTS=
LEAN_EMAIL_SMTP_USERNAME=
LEAN_EMAIL_SMTP_PASSWORD=
LEAN_EMAIL_SMTP_SECURE=
LEAN_EMAIL_SMTP_PORT=

View File

@ -0,0 +1 @@
.env

View File

@ -0,0 +1,21 @@
# Leantime
Open source goals-focused project management system.
## Setup
1. Copy `.env.example` to `.env` and fill out all values. Use `openssl rand -base64 32` for `LEAN_SESSION_PASSWORD` and DB passwords.
2. Start the stack: `docker compose up -d`
3. Open `https://${DOMAIN}/install` once to run the first-time installer; it will create the schema and the initial admin user.
## Runbook
Single Command
```bash
docker compose down && docker system prune && docker compose up -d && docker logs -f leantime
```
**Fix data folder permissions (run on first boot / when adding a new host volume)**
The PHP container runs as `www-data` (UID/GID 1000) and needs to own everything except `db/` (MySQL manages its own).
```
sudo chown -R 1000:1000 /pwspool/software/leantime/{public_userfiles,userfiles,plugins,logs}
```

View File

@ -0,0 +1,77 @@
networks:
traefik:
external: true
leantime:
driver: bridge
services:
# ── Database ────────────────────────────────────────────────────────────────
leantime-db:
image: mysql:8.4
container_name: leantime-db
restart: always
networks:
- leantime
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${LEAN_DB_DATABASE}
MYSQL_USER: ${LEAN_DB_USER}
MYSQL_PASSWORD: ${LEAN_DB_PASSWORD}
command: --character-set-server=UTF8MB4 --collation-server=UTF8MB4_unicode_ci
volumes:
- /pwspool/software/leantime/db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 30s
timeout: 10s
retries: 5
# ── Application ─────────────────────────────────────────────────────────────
leantime:
image: leantime/leantime:${LEAN_VERSION:-latest}
container_name: leantime
restart: always
networks:
- leantime
- traefik
depends_on:
leantime-db:
condition: service_healthy
security_opt:
- no-new-privileges:true
cap_add:
- CAP_CHOWN
- CAP_SETGID
- CAP_SETUID
environment:
LEAN_APP_URL: ${LEAN_APP_URL}
LEAN_SESSION_PASSWORD: ${LEAN_SESSION_PASSWORD}
LEAN_SESSION_SECURE: ${LEAN_SESSION_SECURE:-true}
LEAN_DB_HOST: leantime-db
LEAN_DB_PORT: 3306
LEAN_DB_DATABASE: ${LEAN_DB_DATABASE}
LEAN_DB_USER: ${LEAN_DB_USER}
LEAN_DB_PASSWORD: ${LEAN_DB_PASSWORD}
LEAN_DEFAULT_TIMEZONE: ${LEAN_DEFAULT_TIMEZONE:-America/Los_Angeles}
LEAN_EMAIL_RETURN: ${LEAN_EMAIL_RETURN}
LEAN_EMAIL_USE_SMTP: ${LEAN_EMAIL_USE_SMTP:-false}
LEAN_EMAIL_SMTP_HOSTS: ${LEAN_EMAIL_SMTP_HOSTS}
LEAN_EMAIL_SMTP_USERNAME: ${LEAN_EMAIL_SMTP_USERNAME}
LEAN_EMAIL_SMTP_PASSWORD: ${LEAN_EMAIL_SMTP_PASSWORD}
LEAN_EMAIL_SMTP_SECURE: ${LEAN_EMAIL_SMTP_SECURE}
LEAN_EMAIL_SMTP_PORT: ${LEAN_EMAIL_SMTP_PORT}
volumes:
- /pwspool/software/leantime/public_userfiles:/var/www/html/public/userfiles
- /pwspool/software/leantime/userfiles:/var/www/html/userfiles
- /pwspool/software/leantime/plugins:/var/www/html/app/Plugins
- /pwspool/software/leantime/logs:/var/www/html/storage/logs
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.http.routers.leantime.rule=Host(`${DOMAIN}`)
- traefik.http.routers.leantime.tls=true
- traefik.http.routers.leantime.tls.certresolver=lets-encrypt
- traefik.http.services.leantime.loadbalancer.server.port=8080

View File

@ -1,8 +1,28 @@
# OpenProject # OpenProject
Open source project management software. Open source project management software.
# Setup # Setup
1. Configure `.env`, see example. 1. Configure `.env`, see example.
- Note to specify `OPENPROJECT_HOST__NAME` without protocol. - Note to specify `OPENPROJECT_HOST__NAME` without protocol.
2. Configure users. 2. Bring the stack up: `docker compose up -d`.
- Default admin user is `admin:admin`. 3. First-time login: `admin` / `admin`. You'll be forced to set a new password on first sign-in.
- To pre-seed the admin password and skip the forced reset, set before first boot:
- `OPENPROJECT_SEED_ADMIN_USER_PASSWORD=<strong password>`
- `OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET=false`
# Toggling self-signup
Controlled by `OPENPROJECT_SELF__REGISTRATION` (double underscore is intentional):
- `0` — disabled
- `1` — email activation
- `2` — manual admin activation
- `3` — automatic activation
The env value seeds the setting; an admin can still change it via Administration → Authentication → Settings.
# Wiping persistent data
The all-in-one image bundles Postgres inside the container. The bind mount at `/pwspool/software/openproject` holds both `pgdata/` (database) and `assets/` (uploaded files). To start fresh:
```
docker compose down
sudo rm -rf /pwspool/software/openproject/pgdata /pwspool/software/openproject/assets
docker compose up -d
```

View File

@ -12,9 +12,9 @@ services:
env_file: env_file:
- .env - .env
volumes: volumes:
- /pwspool/software/openproject/data:/var/openproject/assets - /pwspool/software/openproject:/var/openproject
labels: labels:
- traefik.http.routers.openproject.rule=Host(`pm.whitney.rip`) - traefik.http.routers.openproject.rule=Host(`openproject.whitney.rip`)
- traefik.http.routers.openproject.tls=true - traefik.http.routers.openproject.tls=true
- traefik.http.routers.openproject.tls.certresolver=lets-encrypt - traefik.http.routers.openproject.tls.certresolver=lets-encrypt
- traefik.http.services.openproject.loadbalancer.server.port=8080 - traefik.http.services.openproject.loadbalancer.server.port=8080