forgejo
Forgejo is a self hosted version control system, and the one that powers Codeberg.
If you want to just try Forgejo, just create a Codeberg account. If you want to self-host it, thought, here's an example config, using postgres as a database.
Also, the code source for this site is on a self-hosted forgejo
environment variables¶
DB_NAME='database name - eg: forjego'
DB_USER='database user - eg: forjego'
DB_PASSWD='database password - eg: forjego'
DOMAIN='domain for the server - eg: code.kntc.be'
PORT='port for reverse proxying - eg: 4000'
docker-compose¶
name: forgejo
services:
server:
image: codeberg.org/forgejo/forgejo:14
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=db:5432
- FORGEJO__database__NAME=$DB_NAME
- FORGEJO__database__USER=$DB_USER
- FORGEJO__database__PASSWD=$DB_PASSWD
restart: always
networks:
- forgejo
- caddy
volumes:
- ./forgejo:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- '222:22'
depends_on:
- db
labels:
caddy: $DOMAIN
caddy.reverse_proxy: "{{upstreams $PORT}}"
db:
image: postgres:18
restart: always
environment:
- POSTGRES_USER=$DB_PASSWD
- POSTGRES_PASSWORD=$DB_USER
- POSTGRES_DB=$DB_NAME
networks:
- forgejo
volumes:
- ./postgres:/var/lib/postgresql
networks:
caddy:
external: true
forgejo: