Skip to content

Theme color

forgejo

Deploy the Forgejo Git service as a Podman quadlet.

Usage

playbook.yml
- hosts: all
roles:
- role: giftpilz0.container.forgejo

Variables

  • System user for rootless podman operations.

    Default{{ ansible_user }}
  • Image name without tag.

    Defaultcodeberg.org/forgejo/forgejo
  • Container image version.

    Default17.0.0
  • Enable podman auto-update for this container.

    Defaulttrue
  • Create and manage the podman network.

    Defaulttrue
  • Podman network name.

    Defaultforgejo-internal
  • Podman network driver.

    Defaultbridge
  • Expose container ports on the host.

    Defaulttrue
  • Host IP to bind exposed ports to.

    Default127.0.0.1
  • Host:container port mappings.

    Default
    - 3000:3000
    - '{{ forgejo_ssh_port }}:22'
  • External domain for the Forgejo instance.

    Default""
  • host port of the git SSH server, shown in clone URLs.

    Default2222
  • Forgejo log level.

    DefaultInfo
  • PostgreSQL container hostname.

    Defaultpostgresql-pod
  • Database name.

    Defaultforgejo
  • Database user.

    Defaultforgejo
  • Database user password.

    Default""
  • OAuth2 provider display name.

    Default""
  • OAuth2 provider domain.

    Default""
  • OAuth2 client ID for external authentication.

    Default""
  • OAuth2 client secret.

    Default""
  • OAuth2 group that grants admin access.

    Defaultforgejo-admin
  • Extra environment variables injected into the container.

    Default
    USER_UID: '1000'
    USER_GID: '1000'
    APP_NAME: Forgejo
    APP_SLOGAN: ''
    FORGEJO__server__DOMAIN: '{{ forgejo_domain }}'
    FORGEJO__server__ROOT_URL: https://{{ forgejo_domain }}/
    FORGEJO__server__PROTOCOL: http
    FORGEJO__server__HTTP_PORT: 3000
    FORGEJO__server__SSH_PORT: '{{ forgejo_ssh_port }}'
    SSH_LISTEN_PORT: 22
    FORGEJO__server__OFFLINE_MODE: false
    FORGEJO__log__LEVEL: '{{ forgejo_log_level }}'
    FORGEJO__database__DB_TYPE: postgres
    FORGEJO__database__HOST: '{{ forgejo_db_host }}:5432'
    FORGEJO__database__NAME: '{{ forgejo_db_name }}'
    FORGEJO__database__USER: '{{ forgejo_db_user }}'
    FORGEJO__database__PASSWD: '{{ forgejo_db_password }}'
    FORGEJO__security__LOGIN_REMEMBER_DAYS: '14'
    FORGEJO__security__INSTALL_LOCK: true
    FORGEJO__service__DISABLE_REGISTRATION: true
    FORGEJO__service__ALLOW_ONLY_EXTERNAL_REGISTRATION: true
    FORGEJO__service__SHOW_REGISTRATION_BUTTON: false
    FORGEJO__service__ENABLE_INTERNAL_SIGNIN: true
    FORGEJO__oauth2_client__ENABLE_AUTO_REGISTRATION: true
    FORGEJO__oauth2_client__USERNAME: preferred_username
    FORGEJO__oauth2_client__UPDATE_AVATAR: true
    FORGEJO__oauth2_client__ACCOUNT_LINKING: auto
    FORGEJO__oauth2_client__OPENID_CONNECT_SCOPES: '"profile email"'
    FORGEJO__oauth2_client__ADMIN_GROUP: '{{ forgejo_oauth_admin_group }}'
    FORGEJO__openid__ENABLE_OPENID_SIGNIN: false
    FORGEJO__openid__ENABLE_OPENID_SIGNUP: false
    OAUTH_NAME: '{{ forgejo_oauth_name }}'
    OAUTH_CLIENT_ID: '{{ forgejo_oauth_client_id }}'
    OAUTH_CLIENT_SECRET: '{{ forgejo_oauth_client_secret }}'
    OAUTH_DISCOVERY_URL: https://{{ forgejo_oauth_domain }}/.well-known/openid-configuration
    OAUTH_SCOPES: openid profile email groups
    OAUTH_ADMIN_GROUP: '{{ forgejo_oauth_admin_group }}'
  • Optional Forgejo container entrypoint override.

    Default""
  • Optional Forgejo OAuth initialization container entrypoint override.

    Default""
  • Arbitrary file entries with src (controller path) or source (target path), dest, optional mount, mode, and template.

    Default[]
  • Arbitrary directory entries with src (controller directory) or source (target path), dest, optional mount and mode.

    Default[]