From 6e66ba22ce30f2575b10d7217eada218c3f73725 Mon Sep 17 00:00:00 2001 From: Adam Parler Date: Mon, 18 May 2026 13:20:30 -0400 Subject: [PATCH] Added Forgejo configuration --- .gitignore | 1 + forgejo/data/gitea/conf/app.ini | 96 +++++++++++++++++++++++++++++++++ forgejo/docker-compose.yml | 53 ++++++++++++++++++ setup.sh | 19 +++++++ 4 files changed, 169 insertions(+) create mode 100644 .gitignore create mode 100644 forgejo/data/gitea/conf/app.ini create mode 100644 forgejo/docker-compose.yml create mode 100755 setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46ed454 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*/secrets/* \ No newline at end of file diff --git a/forgejo/data/gitea/conf/app.ini b/forgejo/data/gitea/conf/app.ini new file mode 100644 index 0000000..433178f --- /dev/null +++ b/forgejo/data/gitea/conf/app.ini @@ -0,0 +1,96 @@ +APP_NAME = Forgejo +RUN_MODE = prod +APP_SLOGAN = Beyond coding. We Forge. +RUN_USER = git +WORK_PATH = /data/gitea + +[repository] +ROOT = /data/git/repositories + +[repository.local] +LOCAL_COPY_PATH = /data/gitea/tmp/local-repo + +[repository.upload] +TEMP_PATH = /data/gitea/uploads + +[server] +APP_DATA_PATH = /data/gitea +DOMAIN = 10.0.1.2 +SSH_DOMAIN = 10.0.1.2 +HTTP_PORT = 3000 +ROOT_URL = https://forgejo.adamhome.io/ +DISABLE_SSH = false +SSH_PORT = 22 +SSH_LISTEN_PORT = 22 +LFS_START_SERVER = true +OFFLINE_MODE = true + +[database] +PATH = /data/gitea/gitea.db +DB_TYPE = mysql +HOST = db:3306 +NAME = forgejo +USER = forgejo +LOG_SQL = false +SCHEMA = +SSL_MODE = disable + +[indexer] +ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve + +[session] +PROVIDER_CONFIG = /data/gitea/sessions +PROVIDER = file + +[picture] +AVATAR_UPLOAD_PATH = /data/gitea/avatars +REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars + +[attachment] +PATH = /data/gitea/attachments + +[log] +MODE = console +LEVEL = info +ROOT_PATH = /data/gitea/log + +[security] +INSTALL_LOCK = true +SECRET_KEY = +REVERSE_PROXY_LIMIT = 1 +REVERSE_PROXY_TRUSTED_PROXIES = * +PASSWORD_HASH_ALGO = pbkdf2_hi + +[service] +DISABLE_REGISTRATION = false +REGISTER_MANUAL_CONFIRM = true +REQUIRE_SIGNIN_VIEW = false +REGISTER_EMAIL_CONFIRM = false +ENABLE_NOTIFY_MAIL = false +ALLOW_ONLY_EXTERNAL_REGISTRATION = false +ENABLE_CAPTCHA = false +DEFAULT_KEEP_EMAIL_PRIVATE = false +DEFAULT_ALLOW_CREATE_ORGANIZATION = true +DEFAULT_ENABLE_TIMETRACKING = true +NO_REPLY_ADDRESS = noreply.adamhome.io + +[lfs] +PATH = /data/git/lfs + +[mailer] +ENABLED = false + +[openid] +ENABLE_OPENID_SIGNIN = true +ENABLE_OPENID_SIGNUP = true + +[cron.update_checker] +ENABLED = true + +[repository.pull-request] +DEFAULT_MERGE_STYLE = merge + +[repository.signing] +DEFAULT_TRUST_MODEL = committer + +[oauth2] diff --git a/forgejo/docker-compose.yml b/forgejo/docker-compose.yml new file mode 100644 index 0000000..0cb7ee7 --- /dev/null +++ b/forgejo/docker-compose.yml @@ -0,0 +1,53 @@ +services: + forgejo: + image: codeberg.org/forgejo/forgejo:11.0.14 + container_name: forgejo + restart: always + ports: + - '3000:3000' + - '222:22' + environment: + - USER_UID=1000 + - USER_GID=1000 + - FORGEJO__database__DB_TYPE=mysql + - FORGEJO__database__HOST=db:3306 + - FORGEJO__database__NAME=forgejo + - FORGEJO__database__USER=forgejo + - FORGEJO__database__PASSWD_FILE=/run/secrets/db_password + volumes: + - ./data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + networks: + - forgejo + secrets: + - db_password + depends_on: + - db + + db: + image: mysql:8.4.9 + container_name: forgejo-db + restart: always + environment: + - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password + - MYSQL_USER=forgejo + - MYSQL_PASSWORD_FILE=/run/secrets/db_password + - MYSQL_DATABASE=forgejo + volumes: + - ./mysql:/var/lib/mysql + networks: + - forgejo + secrets: + - db_root_password + - db_password + +secrets: + db_password: + file: secrets/db_password.txt + db_root_password: + file: secrets/db_root_password.txt + +networks: + forgejo: + external: false diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..5c29263 --- /dev/null +++ b/setup.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +if command -v podman &> /dev/null; then + PROG="podman" + echo "Podman command exists" +elif command -v docker &> /dev/null; then + PROG="docker" + echo "Docker command exists" +else + echo "Container command (Docker/Podman) could not be found!" +fi + +# Check if folder exists +if [ -d "forgejo" ]; then + cd forgejo + echo "Attempting to start forgejo container ..." + $PROG compose -f docker-compose.yml up -d +fi +