docs: new root as prior history lost (orphan + GC); ~215 commits not recoverable
This commit is contained in:
commit
96961f23f5
268 changed files with 24161 additions and 0 deletions
60
configs/forgejo/README.md
Normal file
60
configs/forgejo/README.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Forgejo (git.hacktivism.ch)
|
||||
|
||||
Rootless stack on koopa: `~/koopa-forgejo/` (podman user hernani).
|
||||
Site: https://git.hacktivism.ch — HTTP `:9024`, git-SSH `:9200`.
|
||||
|
||||
## Branding theme: `hacktivism` (exchange-dark)
|
||||
|
||||
Global default and intended look match **exchange.hacktivism.ch**:
|
||||
|
||||
- Warm dark body (`#1a1410`), cream text (`#fff6e8`)
|
||||
- Gold primary (`#e8a838` / `#f0c86a`), teal accents (`#3ecfbf`)
|
||||
- Readable contrast on body, menus, code, forms, labels, messages
|
||||
|
||||
### Files (this repo)
|
||||
|
||||
| Path | Role |
|
||||
|------|------|
|
||||
| `assets/css/theme-hacktivism.css` | Full dark theme (based on forgejo-dark vars + exchange palette) |
|
||||
| `assets/img/logo.svg` / `logo.png` / `favicon.svg` | Kamek-inspired logo (blue robe, flying on wand); not Nintendo art |
|
||||
| `compose.yml` | Rootless compose + `FORGEJO__ui__DEFAULT_THEME=hacktivism` |
|
||||
| `app.ini.example` | Config sketch |
|
||||
|
||||
### Live paths on koopa
|
||||
|
||||
```
|
||||
~/koopa-forgejo/data/custom/public/assets/css/theme-hacktivism.css
|
||||
~/koopa-forgejo/data/custom/public/assets/img/{logo.svg,logo.png,favicon.svg}
|
||||
~/koopa-forgejo/data/custom/conf/app.ini # [ui] DEFAULT_THEME = hacktivism
|
||||
```
|
||||
|
||||
Compose also sets `FORGEJO__ui__DEFAULT_THEME=hacktivism`.
|
||||
|
||||
### Deploy assets (do not wipe git data)
|
||||
|
||||
```bash
|
||||
install -m 644 configs/forgejo/assets/css/theme-hacktivism.css \
|
||||
~/koopa-forgejo/data/custom/public/assets/css/
|
||||
install -m 644 configs/forgejo/assets/img/* \
|
||||
~/koopa-forgejo/data/custom/public/assets/img/
|
||||
# optional mirror if present:
|
||||
# cp same under data/gitea/custom/public/assets/...
|
||||
```
|
||||
|
||||
**Never** remove `~/koopa-forgejo/data/git/` — repositories live there (`hernani/koopa-admin-log`, …).
|
||||
|
||||
### Logged-in users
|
||||
|
||||
`DEFAULT_THEME` only applies to new sessions / users without a preference.
|
||||
Existing accounts store `user.theme` in Postgres. Force all users:
|
||||
|
||||
```bash
|
||||
podman exec koopa-forgejo-db psql -U forgejo -d forgejo \
|
||||
-c "UPDATE \"user\" SET theme = 'hacktivism';"
|
||||
```
|
||||
|
||||
Or: Profile → Appearance → theme **hacktivism**, then hard-reload.
|
||||
|
||||
### Registration
|
||||
|
||||
Public signup is disabled (`DISABLE_REGISTRATION`, no registration button).
|
||||
79
configs/forgejo/app.ini.example
Normal file
79
configs/forgejo/app.ini.example
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
APP_NAME = hacktivism git
|
||||
RUN_USER = git
|
||||
RUN_MODE = prod
|
||||
WORK_PATH = /var/lib/gitea
|
||||
|
||||
[repository]
|
||||
ROOT = /var/lib/gitea/git/repositories
|
||||
ENABLE_PUSH_CREATE_USER = true
|
||||
ENABLE_PUSH_CREATE_ORG = true
|
||||
DEFAULT_PRIVATE = public
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = /tmp/gitea/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = /tmp/gitea/uploads
|
||||
|
||||
[server]
|
||||
APP_DATA_PATH = /var/lib/gitea
|
||||
SSH_DOMAIN = git.hacktivism.ch
|
||||
HTTP_PORT = 3000
|
||||
ROOT_URL = https://git.hacktivism.ch/
|
||||
DISABLE_SSH = false
|
||||
; In rootless gitea container only internal ssh server is supported
|
||||
START_SSH_SERVER = true
|
||||
SSH_PORT = 9200
|
||||
SSH_LISTEN_PORT = 2222
|
||||
BUILTIN_SSH_SERVER_USER = git
|
||||
LFS_START_SERVER =
|
||||
DOMAIN = git.hacktivism.ch
|
||||
LANDING_PAGE = explore
|
||||
|
||||
[database]
|
||||
PATH = /var/lib/gitea/data/gitea.db
|
||||
DB_TYPE = postgres
|
||||
HOST = db:5432
|
||||
NAME = forgejo
|
||||
USER = forgejo
|
||||
PASSWD = @inline-secret@
|
||||
|
||||
[session]
|
||||
PROVIDER_CONFIG = /var/lib/gitea/data/sessions
|
||||
PROVIDER = memory
|
||||
|
||||
[picture]
|
||||
AVATAR_UPLOAD_PATH = /var/lib/gitea/data/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = /var/lib/gitea/data/repo-avatars
|
||||
|
||||
[attachment]
|
||||
PATH = /var/lib/gitea/data/attachments
|
||||
|
||||
[log]
|
||||
ROOT_PATH = /var/lib/gitea/data/log
|
||||
LEVEL = Info
|
||||
|
||||
[security]
|
||||
INSTALL_LOCK = true
|
||||
SECRET_KEY = @inline-secret@
|
||||
REVERSE_PROXY_LIMIT = 1
|
||||
REVERSE_PROXY_TRUSTED_PROXIES = *
|
||||
INTERNAL_TOKEN = @inline-secret@
|
||||
|
||||
[service]
|
||||
DISABLE_REGISTRATION = true
|
||||
REQUIRE_SIGNIN_VIEW = false
|
||||
SHOW_REGISTRATION_BUTTON = false
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
|
||||
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
|
||||
|
||||
[lfs]
|
||||
PATH = /var/lib/gitea/git/lfs
|
||||
|
||||
[openid]
|
||||
ENABLE_OPENID_SIGNUP = false
|
||||
ENABLE_OPENID_SIGNIN = false
|
||||
|
||||
[oauth2]
|
||||
JWT_SECRET = @inline-secret@
|
||||
|
||||
275
configs/forgejo/assets/css/theme-hacktivism.css
Normal file
275
configs/forgejo/assets/css/theme-hacktivism.css
Normal file
File diff suppressed because one or more lines are too long
90
configs/forgejo/assets/img/favicon.svg
Normal file
90
configs/forgejo/assets/img/favicon.svg
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128" role="img" aria-label="Wizard flying on magic wand, blue robe">
|
||||
<!-- Original Kamek-inspired mark; not Nintendo art. No filters/transforms for clean raster. -->
|
||||
|
||||
<!-- motion streaks -->
|
||||
<line x1="4" y1="64" x2="22" y2="64" stroke="#5eead4" stroke-width="2.5" stroke-linecap="round" opacity="0.55"/>
|
||||
<line x1="6" y1="74" x2="20" y2="74" stroke="#38bdf8" stroke-width="2" stroke-linecap="round" opacity="0.45"/>
|
||||
<line x1="8" y1="54" x2="20" y2="54" stroke="#fde68a" stroke-width="2" stroke-linecap="round" opacity="0.45"/>
|
||||
|
||||
<!-- ground shadow -->
|
||||
<ellipse cx="64" cy="118" rx="30" ry="5" fill="#000" opacity="0.2"/>
|
||||
|
||||
<!-- ===== MAGIC WAND (mount) — diagonal, thick gold shaft ===== -->
|
||||
<!-- sits under the rider from lower-left to upper-right -->
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#92400e" stroke-width="11" stroke-linecap="round"/>
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#e8a838" stroke-width="7" stroke-linecap="round"/>
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#fde68a" stroke-width="2" stroke-linecap="round" opacity="0.75"/>
|
||||
|
||||
<!-- wand jewel (front tip) -->
|
||||
<circle cx="112" cy="70" r="13" fill="#f59e0b" stroke="#fff7ed" stroke-width="3"/>
|
||||
<circle cx="108" cy="66" r="4.5" fill="#fef9c3"/>
|
||||
<!-- sparkles at tip -->
|
||||
<polygon points="120,54 121.6,58.5 126,60 121.6,61.5 120,66 118.4,61.5 114,60 118.4,58.5" fill="#fef08a"/>
|
||||
<polygon points="102,56 103,59 106,60 103,61 102,64 101,61 98,60 101,59" fill="#5eead4"/>
|
||||
<circle cx="118" cy="78" r="2" fill="#bae6fd"/>
|
||||
|
||||
<!-- ===== RIDER on top of wand ===== -->
|
||||
<!-- blue cape fluttering left -->
|
||||
<path d="M38 78 C18 82, 10 98, 8 110 C22 98, 34 96, 40 92 Z" fill="#1e3a8a"/>
|
||||
<path d="M40 80 C22 88, 14 104, 12 112 C28 100, 36 98, 42 94 Z" fill="#1d4ed8"/>
|
||||
|
||||
<!-- BLUE ROBE (body sitting ON shaft) -->
|
||||
<ellipse cx="54" cy="86" rx="28" ry="22" fill="#1d4ed8"/>
|
||||
<ellipse cx="54" cy="84" rx="24" ry="18" fill="#2563eb"/>
|
||||
<!-- white trim -->
|
||||
<path d="M32 74 Q54 94 76 74" fill="none" stroke="#f8fafc" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M36 82 Q54 98 72 82" fill="none" stroke="#e2e8f0" stroke-width="2.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- green shell -->
|
||||
<ellipse cx="66" cy="92" rx="13" ry="11" fill="#16a34a"/>
|
||||
<ellipse cx="66" cy="92" rx="6" ry="5" fill="#86efac" opacity="0.75"/>
|
||||
|
||||
<!-- legs over the wand -->
|
||||
<ellipse cx="42" cy="100" rx="10" ry="7" fill="#1e40af"/>
|
||||
<ellipse cx="60" cy="102" rx="10" ry="7" fill="#1e40af"/>
|
||||
<!-- yellow feet hanging past shaft -->
|
||||
<ellipse cx="38" cy="106" rx="7" ry="4.5" fill="#fbbf24"/>
|
||||
<ellipse cx="64" cy="108" rx="7" ry="4.5" fill="#fbbf24"/>
|
||||
|
||||
<!-- left arm forward -->
|
||||
<ellipse cx="30" cy="82" rx="9" ry="7" fill="#1d4ed8"/>
|
||||
<circle cx="24" cy="78" r="5.5" fill="#fbbf24"/>
|
||||
<!-- right arm up -->
|
||||
<ellipse cx="74" cy="74" rx="9" ry="7" fill="#1d4ed8"/>
|
||||
<circle cx="80" cy="68" r="5.5" fill="#fbbf24"/>
|
||||
<circle cx="82" cy="60" r="5" fill="#38bdf8"/>
|
||||
<circle cx="81" cy="58" r="1.8" fill="#e0f2fe"/>
|
||||
|
||||
<!-- ===== HEAD ===== -->
|
||||
<ellipse cx="54" cy="50" rx="26" ry="24" fill="#fbbf24"/>
|
||||
<ellipse cx="54" cy="53" rx="21" ry="17" fill="#fcd34d"/>
|
||||
<ellipse cx="34" cy="54" rx="6" ry="4" fill="#fb923c" opacity="0.4"/>
|
||||
<ellipse cx="74" cy="54" rx="6" ry="4" fill="#fb923c" opacity="0.4"/>
|
||||
|
||||
<!-- glasses -->
|
||||
<circle cx="42" cy="50" r="10" fill="#bae6fd" fill-opacity="0.4" stroke="#0f172a" stroke-width="3"/>
|
||||
<circle cx="66" cy="50" r="10" fill="#bae6fd" fill-opacity="0.4" stroke="#0f172a" stroke-width="3"/>
|
||||
<line x1="52" y1="50" x2="56" y2="50" stroke="#0f172a" stroke-width="3"/>
|
||||
<line x1="32" y1="47" x2="24" y2="42" stroke="#0f172a" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<line x1="76" y1="47" x2="84" y2="42" stroke="#0f172a" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<circle cx="44" cy="50" r="3" fill="#0f172a"/>
|
||||
<circle cx="68" cy="50" r="3" fill="#0f172a"/>
|
||||
<circle cx="45.2" cy="48.8" r="1.1" fill="#fff"/>
|
||||
<circle cx="69.2" cy="48.8" r="1.1" fill="#fff"/>
|
||||
|
||||
<!-- snout + mustache -->
|
||||
<ellipse cx="54" cy="62" rx="8" ry="5" fill="#f59e0b"/>
|
||||
<path d="M36 64 Q46 74 54 70 Q62 74 72 64 Q64 72 54 74 Q44 72 36 64 Z" fill="#f8fafc"/>
|
||||
<path d="M44 66 Q54 74 64 66" fill="none" stroke="#92400e" stroke-width="2.2" stroke-linecap="round"/>
|
||||
|
||||
<!-- BLUE pointed hat -->
|
||||
<path d="M28 44 L54 2 L80 44 Z" fill="#1d4ed8"/>
|
||||
<path d="M36 44 L54 10 L72 44 Z" fill="#3b82f6" opacity="0.5"/>
|
||||
<ellipse cx="54" cy="44" rx="30" ry="8" fill="#1e40af"/>
|
||||
<ellipse cx="54" cy="42.5" rx="26" ry="5" fill="#2563eb"/>
|
||||
<ellipse cx="54" cy="44" rx="30" ry="8" fill="none" stroke="#f8fafc" stroke-width="2.2"/>
|
||||
<polygon points="54,12 55.6,16.8 60.5,18.4 55.6,20 54,24.8 52.4,20 47.5,18.4 52.4,16.8" fill="#f8fafc"/>
|
||||
<polygon points="42,22 43.1,25.2 46.2,26.4 43.1,27.6 42,30.8 40.9,27.6 37.8,26.4 40.9,25.2" fill="#fef08a"/>
|
||||
<circle cx="54" cy="4" r="6" fill="#f8fafc"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
BIN
configs/forgejo/assets/img/logo.png
Normal file
BIN
configs/forgejo/assets/img/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
90
configs/forgejo/assets/img/logo.svg
Normal file
90
configs/forgejo/assets/img/logo.svg
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128" role="img" aria-label="Wizard flying on magic wand, blue robe">
|
||||
<!-- Original Kamek-inspired mark; not Nintendo art. No filters/transforms for clean raster. -->
|
||||
|
||||
<!-- motion streaks -->
|
||||
<line x1="4" y1="64" x2="22" y2="64" stroke="#5eead4" stroke-width="2.5" stroke-linecap="round" opacity="0.55"/>
|
||||
<line x1="6" y1="74" x2="20" y2="74" stroke="#38bdf8" stroke-width="2" stroke-linecap="round" opacity="0.45"/>
|
||||
<line x1="8" y1="54" x2="20" y2="54" stroke="#fde68a" stroke-width="2" stroke-linecap="round" opacity="0.45"/>
|
||||
|
||||
<!-- ground shadow -->
|
||||
<ellipse cx="64" cy="118" rx="30" ry="5" fill="#000" opacity="0.2"/>
|
||||
|
||||
<!-- ===== MAGIC WAND (mount) — diagonal, thick gold shaft ===== -->
|
||||
<!-- sits under the rider from lower-left to upper-right -->
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#92400e" stroke-width="11" stroke-linecap="round"/>
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#e8a838" stroke-width="7" stroke-linecap="round"/>
|
||||
<line x1="6" y1="100" x2="108" y2="72" stroke="#fde68a" stroke-width="2" stroke-linecap="round" opacity="0.75"/>
|
||||
|
||||
<!-- wand jewel (front tip) -->
|
||||
<circle cx="112" cy="70" r="13" fill="#f59e0b" stroke="#fff7ed" stroke-width="3"/>
|
||||
<circle cx="108" cy="66" r="4.5" fill="#fef9c3"/>
|
||||
<!-- sparkles at tip -->
|
||||
<polygon points="120,54 121.6,58.5 126,60 121.6,61.5 120,66 118.4,61.5 114,60 118.4,58.5" fill="#fef08a"/>
|
||||
<polygon points="102,56 103,59 106,60 103,61 102,64 101,61 98,60 101,59" fill="#5eead4"/>
|
||||
<circle cx="118" cy="78" r="2" fill="#bae6fd"/>
|
||||
|
||||
<!-- ===== RIDER on top of wand ===== -->
|
||||
<!-- blue cape fluttering left -->
|
||||
<path d="M38 78 C18 82, 10 98, 8 110 C22 98, 34 96, 40 92 Z" fill="#1e3a8a"/>
|
||||
<path d="M40 80 C22 88, 14 104, 12 112 C28 100, 36 98, 42 94 Z" fill="#1d4ed8"/>
|
||||
|
||||
<!-- BLUE ROBE (body sitting ON shaft) -->
|
||||
<ellipse cx="54" cy="86" rx="28" ry="22" fill="#1d4ed8"/>
|
||||
<ellipse cx="54" cy="84" rx="24" ry="18" fill="#2563eb"/>
|
||||
<!-- white trim -->
|
||||
<path d="M32 74 Q54 94 76 74" fill="none" stroke="#f8fafc" stroke-width="4" stroke-linecap="round"/>
|
||||
<path d="M36 82 Q54 98 72 82" fill="none" stroke="#e2e8f0" stroke-width="2.5" stroke-linecap="round"/>
|
||||
|
||||
<!-- green shell -->
|
||||
<ellipse cx="66" cy="92" rx="13" ry="11" fill="#16a34a"/>
|
||||
<ellipse cx="66" cy="92" rx="6" ry="5" fill="#86efac" opacity="0.75"/>
|
||||
|
||||
<!-- legs over the wand -->
|
||||
<ellipse cx="42" cy="100" rx="10" ry="7" fill="#1e40af"/>
|
||||
<ellipse cx="60" cy="102" rx="10" ry="7" fill="#1e40af"/>
|
||||
<!-- yellow feet hanging past shaft -->
|
||||
<ellipse cx="38" cy="106" rx="7" ry="4.5" fill="#fbbf24"/>
|
||||
<ellipse cx="64" cy="108" rx="7" ry="4.5" fill="#fbbf24"/>
|
||||
|
||||
<!-- left arm forward -->
|
||||
<ellipse cx="30" cy="82" rx="9" ry="7" fill="#1d4ed8"/>
|
||||
<circle cx="24" cy="78" r="5.5" fill="#fbbf24"/>
|
||||
<!-- right arm up -->
|
||||
<ellipse cx="74" cy="74" rx="9" ry="7" fill="#1d4ed8"/>
|
||||
<circle cx="80" cy="68" r="5.5" fill="#fbbf24"/>
|
||||
<circle cx="82" cy="60" r="5" fill="#38bdf8"/>
|
||||
<circle cx="81" cy="58" r="1.8" fill="#e0f2fe"/>
|
||||
|
||||
<!-- ===== HEAD ===== -->
|
||||
<ellipse cx="54" cy="50" rx="26" ry="24" fill="#fbbf24"/>
|
||||
<ellipse cx="54" cy="53" rx="21" ry="17" fill="#fcd34d"/>
|
||||
<ellipse cx="34" cy="54" rx="6" ry="4" fill="#fb923c" opacity="0.4"/>
|
||||
<ellipse cx="74" cy="54" rx="6" ry="4" fill="#fb923c" opacity="0.4"/>
|
||||
|
||||
<!-- glasses -->
|
||||
<circle cx="42" cy="50" r="10" fill="#bae6fd" fill-opacity="0.4" stroke="#0f172a" stroke-width="3"/>
|
||||
<circle cx="66" cy="50" r="10" fill="#bae6fd" fill-opacity="0.4" stroke="#0f172a" stroke-width="3"/>
|
||||
<line x1="52" y1="50" x2="56" y2="50" stroke="#0f172a" stroke-width="3"/>
|
||||
<line x1="32" y1="47" x2="24" y2="42" stroke="#0f172a" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<line x1="76" y1="47" x2="84" y2="42" stroke="#0f172a" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<circle cx="44" cy="50" r="3" fill="#0f172a"/>
|
||||
<circle cx="68" cy="50" r="3" fill="#0f172a"/>
|
||||
<circle cx="45.2" cy="48.8" r="1.1" fill="#fff"/>
|
||||
<circle cx="69.2" cy="48.8" r="1.1" fill="#fff"/>
|
||||
|
||||
<!-- snout + mustache -->
|
||||
<ellipse cx="54" cy="62" rx="8" ry="5" fill="#f59e0b"/>
|
||||
<path d="M36 64 Q46 74 54 70 Q62 74 72 64 Q64 72 54 74 Q44 72 36 64 Z" fill="#f8fafc"/>
|
||||
<path d="M44 66 Q54 74 64 66" fill="none" stroke="#92400e" stroke-width="2.2" stroke-linecap="round"/>
|
||||
|
||||
<!-- BLUE pointed hat -->
|
||||
<path d="M28 44 L54 2 L80 44 Z" fill="#1d4ed8"/>
|
||||
<path d="M36 44 L54 10 L72 44 Z" fill="#3b82f6" opacity="0.5"/>
|
||||
<ellipse cx="54" cy="44" rx="30" ry="8" fill="#1e40af"/>
|
||||
<ellipse cx="54" cy="42.5" rx="26" ry="5" fill="#2563eb"/>
|
||||
<ellipse cx="54" cy="44" rx="30" ry="8" fill="none" stroke="#f8fafc" stroke-width="2.2"/>
|
||||
<polygon points="54,12 55.6,16.8 60.5,18.4 55.6,20 54,24.8 52.4,20 47.5,18.4 52.4,16.8" fill="#f8fafc"/>
|
||||
<polygon points="42,22 43.1,25.2 46.2,26.4 43.1,27.6 42,30.8 40.9,27.6 37.8,26.4 40.9,25.2" fill="#fef08a"/>
|
||||
<circle cx="54" cy="4" r="6" fill="#f8fafc"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
86
configs/forgejo/compose.yml
Normal file
86
configs/forgejo/compose.yml
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# koopa-forgejo — ROOTLESS Forgejo image + rootless podman (user hernani)
|
||||
# Site: https://git.hacktivism.ch | HTTP :9024 | SSH :9200
|
||||
services:
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:11-rootless
|
||||
container_name: koopa-forgejo
|
||||
restart: unless-stopped
|
||||
user: "1000:1000"
|
||||
userns_mode: keep-id
|
||||
env_file: [.env]
|
||||
environment:
|
||||
USER_UID: "1000"
|
||||
USER_GID: "1000"
|
||||
FORGEJO__database__DB_TYPE: postgres
|
||||
FORGEJO__database__HOST: db:5432
|
||||
FORGEJO__database__NAME: forgejo
|
||||
FORGEJO__database__USER: forgejo
|
||||
FORGEJO__database__PASSWD: ${FORGEJO_DB_PASSWORD}
|
||||
FORGEJO__server__DOMAIN: git.hacktivism.ch
|
||||
FORGEJO__server__SSH_DOMAIN: git.hacktivism.ch
|
||||
FORGEJO__server__ROOT_URL: https://git.hacktivism.ch/
|
||||
FORGEJO__server__HTTP_PORT: "3000"
|
||||
FORGEJO__server__SSH_PORT: "9200"
|
||||
FORGEJO__server__SSH_LISTEN_PORT: "2222"
|
||||
FORGEJO__server__START_SSH_SERVER: "true"
|
||||
FORGEJO__server__DISABLE_SSH: "false"
|
||||
FORGEJO__server__LANDING_PAGE: explore
|
||||
FORGEJO__service__DISABLE_REGISTRATION: "true"
|
||||
FORGEJO__service__ALLOW_ONLY_EXTERNAL_REGISTRATION: "false"
|
||||
FORGEJO__service__SHOW_REGISTRATION_BUTTON: "false"
|
||||
FORGEJO__service__REQUIRE_SIGNIN_VIEW: "false"
|
||||
FORGEJO__service__DEFAULT_ALLOW_CREATE_ORGANIZATION: "true"
|
||||
FORGEJO__openid__ENABLE_OPENID_SIGNIN: "false"
|
||||
FORGEJO__openid__ENABLE_OPENID_SIGNUP: "false"
|
||||
FORGEJO__repository__DEFAULT_PRIVATE: public
|
||||
FORGEJO__repository__ENABLE_PUSH_CREATE_USER: "true"
|
||||
FORGEJO__repository__ENABLE_PUSH_CREATE_ORG: "true"
|
||||
FORGEJO__security__INSTALL_LOCK: "true"
|
||||
FORGEJO__session__PROVIDER: memory
|
||||
FORGEJO__log__LEVEL: Info
|
||||
FORGEJO____APP_NAME: "hacktivism git"
|
||||
FORGEJO__ui__DEFAULT_THEME: hacktivism
|
||||
FORGEJO__ui__THEMES: hacktivism,forgejo-auto,forgejo-light,forgejo-dark,gitea-auto,gitea-light,gitea-dark
|
||||
ports:
|
||||
- "9024:3000"
|
||||
- "9200:2222"
|
||||
volumes:
|
||||
- ./data:/var/lib/gitea
|
||||
- ./config:/etc/gitea
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
org.hacktivism.service: forgejo
|
||||
org.hacktivism.variant: rootless
|
||||
org.hacktivism.host_port: "9024"
|
||||
org.hacktivism.ssh_port: "9200"
|
||||
org.hacktivism.site: git.hacktivism.ch
|
||||
org.hacktivism.managed_by: koopa-admin
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3000/api/healthz"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 90s
|
||||
|
||||
db:
|
||||
image: docker.io/library/postgres:16-alpine
|
||||
container_name: koopa-forgejo-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: forgejo
|
||||
POSTGRES_PASSWORD: ${FORGEJO_DB_PASSWORD}
|
||||
POSTGRES_DB: forgejo
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U forgejo -d forgejo"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 20
|
||||
start_period: 10s
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
Loading…
Add table
Add a link
Reference in a new issue