Make forgejo role generic

This commit is contained in:
Ivan R. 2024-11-11 15:09:10 +05:00
parent da696836a8
commit a62e5ae9c9
Signed by: lumin
GPG key ID: E0937DC7CD6D3817
5 changed files with 179 additions and 52 deletions

View file

@ -2,10 +2,15 @@
- hosts: webservers
roles:
- role: forgejo
postgresql_password: "{{ postgresql_users.forgejo }}"
root_url: https://git.comfycamp.space
domain: git.comfycamp.space
db_password: "{{ postgresql_users.forgejo }}"
smtp_addr: comfycamp.space
smtp_user: forgejo@comfycamp.space
smtp_password: "{{ mail_users['forgejo@comfycamp.space'] }}"
oauth2_jwt_secret: "{{ forgejo_oauth2_jwt_secret }}"
internal_token: "{{ forgejo_internal_token }}"
secret_key: "{{ forgejo_secret_key }}"
lfs_jwt_secret: "{{ forgejo_lfs_jwt_secret }}"
minio_access_key_id: uTJp8KfKSETa1uYMZnSM
minio_secret_access_key: "{{ forgejo_minio_secret_access_key }}"

View file

@ -2,24 +2,90 @@
argument_specs:
main:
options:
postgresql_password:
type: "str"
user_uid:
type: int
user_gid:
type: int
tag:
type: str
root_url:
type: str
required: true
domain:
type: str
required: true
http_port:
type: int
start_ssh_server:
type: bool
ssh_port:
type: int
ssh_listen_port:
type: int
repositories_root:
type: str
run_user:
type: str
work_path:
type: str
db_type:
type: str
db_host:
type: str
db_name:
type: str
db_user:
type: str
db_password:
type: str
log_level:
type: str
log_root_path:
type: str
smtp_enabled:
type: bool
smtp_addr:
type: str
smtp_port:
type: int
smtp_user:
type: str
smtp_password:
type: "str"
required: true
oauth2_jwt_secret:
type: "str"
required: true
type: str
install_lock:
type: bool
internal_token:
type: "str"
type: str
required: true
secret_key:
type: "str"
type: str
required: true
oauth2_jwt_secret:
type: str
required: true
lfs_start_server:
type: bool
lfs_jwt_secret:
type: "str"
required: true
type: str
storage_type:
type: str
minio_endpoint:
type: str
minio_access_key_id:
type: str
minio_secret_access_key:
type: "str"
required: true
type: str
minio_bucket:
type: str
cache_adapter:
type: str
cache_host:
type: str
disable_registration:
type: bool
show_registration_button:
type: bool
cookie_name:
type: str
cookie_secure:
type: bool

View file

@ -28,12 +28,12 @@
become: true
community.docker.docker_container:
name: forgejo
image: codeberg.org/forgejo/forgejo:8.0.3
image: codeberg.org/forgejo/forgejo:{{ tag }}
env:
USER_UID: "1000"
USER_GID: "1000"
FORGEJO_WORK_DIR: "/data"
FORGEJO_CUSTOM: "/data/custom"
USER_UID: "{{ user_uid | string }}"
USER_GID: "{{ user_gid | string }}"
FORGEJO_WORK_DIR: "{{ work_path }}"
FORGEJO_CUSTOM: "{{ work_path }}/custom"
networks:
- name: postgresql
- name: forgejo
@ -44,6 +44,6 @@
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "8022:8022"
- "{{ ssh_listen_port }}:{{ ssh_listen_port }}"
recreate: "{{ appini.changed }}"
restart_policy: unless-stopped

View file

@ -1,62 +1,64 @@
[DEFAULT]
RUN_MODE=prod
RUN_USER=forgejo
WORK_PATH=/data
RUN_USER={{ run_user }}
WORK_PATH={{ work_path }}
[database]
DB_TYPE=postgres
HOST=postgresql:5432
NAME=forgejo
USER=forgejo
PASSWD={{ postgresql_password }}
DB_TYPE={{ db_type }}
HOST={{ db_host }}
NAME={{ db_name }}
USER={{ db_user }}
PASSWD={{ db_password }}
[storage]
STORAGE_TYPE=minio
MINIO_ENDPOINT=minio:9000
STORAGE_TYPE={{ storage_type }}
MINIO_ENDPOINT={{ minio_endpoint }}
MINIO_ACCESS_KEY_ID={{ minio_access_key_id }}
MINIO_SECRET_ACCESS_KEY={{ minio_secret_access_key }}
MINIO_BUCKET=forgejo
MINIO_BUCKET={{ minio_bucket }}
[log]
LEVEL=warn
ROOT_PATH=/data/log
LEVEL={{ log_level }}
ROOT_PATH={{ log_root_path }}
[mailer]
ENABLED=true
SMTP_ADDR=comfycamp.space
SMTP_PORT=587
USER=forgejo@comfycamp.space
ENABLED={{ smtp_enabled | string }}
SMTP_ADDR={{ smtp_addr }}
SMTP_PORT={{ smtp_port | string }}
USER={{ smtp_user }}
PASSWD={{ smtp_password }}
[oauth2]
JWT_SECRET={{ oauth2_jwt_secret }}
[repository]
ROOT=/data/repositories
ROOT={{ repositories_root }}
[security]
INSTALL_LOCK=true
INSTALL_LOCK={{ install_lock | string }}
INTERNAL_TOKEN={{ internal_token }}
SECRET_KEY={{ secret_key }}
[server]
DOMAIN=git.comfycamp.space
ROOT_URL=https://git.comfycamp.space
HTTP_PORT=3000
DOMAIN={{ domain }}
ROOT_URL={{ root_url }}
HTTP_PORT={{ http_port | string }}
LFS_START_SERVER={{ lfs_start_server | string }}
LFS_JWT_SECRET={{ lfs_jwt_secret }}
LFS_START_SERVER=true
START_SSH_SERVER=true
SSH_PORT=8022
SSH_LISTEN_PORT=8022
START_SSH_SERVER={{ start_ssh_server | string }}
SSH_PORT={{ ssh_port | string }}
SSH_LISTEN_PORT={{ ssh_listen_port | string }}
[session]
COOKIE_NAME=session
COOKIE_SECURE=true
COOKIE_NAME={{ cookie_name }}
COOKIE_SECURE={{ cookie_secure | string }}
[service]
DISABLE_REGISTRATION=true
SHOW_REGISTRATION_BUTTON=false
DISABLE_REGISTRATION={{ disable_registration | string }}
SHOW_REGISTRATION_BUTTON={{ show_registration_button | string }}
[cache]
ADAPTER=redis
HOST=redis://redis-forgejo:6379/0?pool_size=100&idle_timeout=180s
ADAPTER={{ cache_adapter }}
HOST={{ cache_host }}

View file

@ -1 +1,55 @@
minio_access_key_id: uTJp8KfKSETa1uYMZnSM
user_uid: 1000
user_gid: 1000
tag: 9.0.1
root_url: ""
domain: ""
http_port: 3000
install_lock: true
secret_key: ""
internal_token: ""
oauth2_jwt_secret: ""
start_ssh_server: true
ssh_port: 8022
ssh_listen_port: 8022
run_user: forgejo
work_path: /data
repositories_root: /data/repositories
db_type: postgres
db_host: postgresql:5432
db_name: forgejo
db_user: forgejo
db_password: ""
log_level: warn
log_root_path: /data/log
smtp_enabled: true
smtp_addr: ""
smtp_port: 587
smtp_user: ""
smtp_password: ""
cache_adapter: redis
cache_host: redis://redis-forgejo:6379/0?pool_size=100&idle_timeout=180s
lfs_start_server: true
lfs_jwt_secret: ""
storage_type: minio
minio_endpoint: minio:9000
minio_access_key_id: ""
minio_secret_access_key: ""
minio_bucket: forgejo
cookie_name: session
cookie_secure: true
disable_registration: true
show_registration_button: false