parent
4e551a6d5e
commit
1b256c5e6d
states/forgejo
15
states/forgejo/config.sls
Normal file
15
states/forgejo/config.sls
Normal file
@ -0,0 +1,15 @@
|
||||
# vim: ft=sls
|
||||
---
|
||||
{% from "forgejo/map.jinja" import forgejo with context %}
|
||||
|
||||
forgejo-config:
|
||||
file.managed:
|
||||
- name: {{ forgejo.configfile }}
|
||||
- source: salt://forgejo/templates/app.ini.j2
|
||||
- template: jinja
|
||||
- user: {{ forgejo.user }}
|
||||
- group: {{ forgejo.group }}
|
||||
- mode: 600
|
||||
- makedirs: true
|
||||
- require:
|
||||
- git
|
107
states/forgejo/defaults.yaml
Normal file
107
states/forgejo/defaults.yaml
Normal file
@ -0,0 +1,107 @@
|
||||
---
|
||||
forgejo:
|
||||
release_url: https://dl.forgejo.io/forgejo
|
||||
workingdir: /var/lib/forgejo
|
||||
binfile: /var/lib/forgejo/forgejo
|
||||
configfile: /var/lib/forgejo/custom/conf/app.ini
|
||||
user: git
|
||||
group: git
|
||||
version: "10.0.0"
|
||||
os: linux
|
||||
arch: amd64
|
||||
config:
|
||||
global:
|
||||
app_name: Forgejo - Beyond coding. We forge.
|
||||
run_user: git
|
||||
run_mode: prod
|
||||
work_path: /var/lib/forgejo
|
||||
database:
|
||||
db_type: postgres
|
||||
host: 127.0.0.1:5432
|
||||
name: forgejo
|
||||
user: forgejo
|
||||
passwd: databaseSecretPassword
|
||||
ssl_mode: enable
|
||||
path: data/forgejo.db
|
||||
repository:
|
||||
root: /var/lib/forgejo/data/forgejo-repositories
|
||||
default_branch: master
|
||||
repo-archive:
|
||||
path: /var/lib/forgejo/data/repo-archive
|
||||
server:
|
||||
domain: git.example.com
|
||||
http_addr: "::"
|
||||
http_port: 3000
|
||||
root_url: https://git.example.com/
|
||||
disable_ssh: "true"
|
||||
start_ssh_server: "false"
|
||||
ssh_port: 2222
|
||||
ssh_listen_port: 2222
|
||||
offline_mode: "false"
|
||||
lfs_start_server: "false"
|
||||
lfs_jwt_secret: createYourOwnJWTSecret
|
||||
enable_gzip: "false"
|
||||
landing_page: home
|
||||
lfs:
|
||||
path: data/lfs
|
||||
cache:
|
||||
enabled: "true"
|
||||
adapter: redis
|
||||
host: redis://127.0.0.1:6379/0?pool_size=100&idle_timeout=180s
|
||||
mailer:
|
||||
enable: "true"
|
||||
hostname: mail.example.com
|
||||
hostandport: mail.example.com:587
|
||||
from_address: git@example.com
|
||||
smtp_user: git@example.com
|
||||
smtp_password: secretPassword1234
|
||||
skip_verify: "false"
|
||||
service:
|
||||
register_email_confirm: "true"
|
||||
disable_registration: "true"
|
||||
require_signin_view: "true"
|
||||
enable_captcha: "true"
|
||||
enable_notify_mail: "true"
|
||||
picture:
|
||||
disable_gravatar: "false"
|
||||
attachment:
|
||||
enabled: "true"
|
||||
path: data/attachments
|
||||
allowed_types: image/jpeg|image/png
|
||||
max_size: 8
|
||||
max_files: 5
|
||||
cron:
|
||||
enabled: "true"
|
||||
run_at_start: "false"
|
||||
cron.update_mirrors:
|
||||
schedule: "0 12 3 * * *"
|
||||
cron.archive_cleanup:
|
||||
enabled: "false"
|
||||
cron.delete_repo_archives:
|
||||
enabled: "false"
|
||||
cron.delete_old_actions:
|
||||
enabled: "true"
|
||||
run_at_start: "true"
|
||||
schedule: "0 0 3 * * *"
|
||||
older_than: "90d"
|
||||
session:
|
||||
provider: file
|
||||
cookie_secure: "true"
|
||||
cookie_name: i_like_forgejo
|
||||
log:
|
||||
root_path: /var/log/forgejo
|
||||
#disable_router_log: true
|
||||
mode: file
|
||||
level: info
|
||||
security:
|
||||
install_lock: "false"
|
||||
secret_key: twogirlsonecup
|
||||
login_remember_days: 30
|
||||
cookie_username: forgejouser
|
||||
cookie_remember_name: forgejousersession
|
||||
internal_token: motherfuckingtoken
|
||||
other:
|
||||
show_footer_branding: "true"
|
||||
show_footer_version: "true"
|
||||
oauth2:
|
||||
jwt_secret: createYourOwnJWTSecret
|
6
states/forgejo/init.sls
Normal file
6
states/forgejo/init.sls
Normal file
@ -0,0 +1,6 @@
|
||||
# vim: ft=sls
|
||||
---
|
||||
include:
|
||||
- .install
|
||||
- .config
|
||||
- .service
|
35
states/forgejo/install.sls
Normal file
35
states/forgejo/install.sls
Normal file
@ -0,0 +1,35 @@
|
||||
# vim: ft=sls
|
||||
---
|
||||
{% from "forgejo/map.jinja" import forgejo with context %}
|
||||
|
||||
git:
|
||||
group.present:
|
||||
- system: true
|
||||
user.present:
|
||||
- system: true
|
||||
- home: {{ forgejo.workingdir }}
|
||||
- shell: /usr/sbin/nologin
|
||||
- groups:
|
||||
- {{ forgejo.group }}
|
||||
- require:
|
||||
- group: {{ forgejo.group }}
|
||||
pkg.installed: []
|
||||
|
||||
forgejo-bin:
|
||||
file.managed:
|
||||
- name: {{ forgejo.workingdir }}/forgejo
|
||||
- source: "{{ forgejo.release_url }}/{{ forgejo.version }}/forgejo-{{ forgejo.version }}-{{ forgejo.os }}-{{ forgejo.arch }}"
|
||||
- source_hash: "{{ forgejo.release_url }}/{{ forgejo.version }}/forgejo-{{ forgejo.version }}-{{ forgejo.os }}-{{ forgejo.arch }}.sha256"
|
||||
- user: {{ forgejo.user }}
|
||||
- group: {{ forgejo.group }}
|
||||
- mode: 750
|
||||
- require:
|
||||
- git
|
||||
|
||||
forgejo-log-dir:
|
||||
file.directory:
|
||||
- name: {{ forgejo.config.log.root_path }}
|
||||
- user: {{ forgejo.user }}
|
||||
- group: {{ forgejo.group }}
|
||||
- require:
|
||||
- file: forgejo-bin
|
17
states/forgejo/map.jinja
Normal file
17
states/forgejo/map.jinja
Normal file
@ -0,0 +1,17 @@
|
||||
{%- import_yaml "forgejo/defaults.yaml" as defaults -%}
|
||||
|
||||
{%- set os_family_map = salt['grains.filter_by']({
|
||||
'Debian': {},
|
||||
'Suse': {},
|
||||
'Arch': {},
|
||||
'RedHat': {},
|
||||
}, grain="os_family", merge=salt['pillar.get']('forgejo:lookup'))
|
||||
-%}
|
||||
{%- do defaults.forgejo.update(os_family_map) -%}
|
||||
|
||||
{%- set forgejo = salt['pillar.get'](
|
||||
'forgejo',
|
||||
default=defaults.forgejo,
|
||||
merge=True
|
||||
)
|
||||
-%}
|
21
states/forgejo/service.sls
Normal file
21
states/forgejo/service.sls
Normal file
@ -0,0 +1,21 @@
|
||||
# vim: ft=sls
|
||||
---
|
||||
{%- from "forgejo/map.jinja" import forgejo with context %}
|
||||
|
||||
forgejo-service:
|
||||
file.managed:
|
||||
- name: /etc/systemd/system/forgejo.service
|
||||
- source: salt://forgejo/templates/forgejo.service.j2
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 644
|
||||
- template: jinja
|
||||
- makedirs: true
|
||||
|
||||
forgejo:
|
||||
service.running:
|
||||
- enable: true
|
||||
- full_restart: true
|
||||
- watch:
|
||||
- file: forgejo-bin
|
||||
- file: forgejo-config
|
14
states/forgejo/templates/app.ini.j2
Normal file
14
states/forgejo/templates/app.ini.j2
Normal file
@ -0,0 +1,14 @@
|
||||
{% from "forgejo/map.jinja" import forgejo with context %}
|
||||
|
||||
{%- for k,v in forgejo.config.items() -%}
|
||||
{%- if k == "global" %}
|
||||
{%- for subkey,subval in v.items() -%}
|
||||
{{ subkey|upper() }} = {{ subval }}
|
||||
{% endfor -%}
|
||||
{% else -%}
|
||||
[{{ k }}]
|
||||
{% for subkey,subval in v.items() -%}
|
||||
{{ subkey|upper() }} = {{ subval }}
|
||||
{% endfor -%}
|
||||
{% endif %}
|
||||
{%- endfor %}
|
18
states/forgejo/templates/forgejo.service.j2
Normal file
18
states/forgejo/templates/forgejo.service.j2
Normal file
@ -0,0 +1,18 @@
|
||||
{%- from "forgejo/map.jinja" import forgejo with context %}
|
||||
[Unit]
|
||||
Description=Forgejo ({{ forgejo.config.global.app_name }})
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
After=postgresql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User={{ forgejo.user }}
|
||||
Group={{ forgejo.user }}
|
||||
WorkingDirectory={{ forgejo.workingdir }}
|
||||
ExecStart={{ forgejo.binfile }} -w {{ forgejo.workingdir }} web
|
||||
Restart=always
|
||||
Environment=USER={{ forgejo.user }} HOME={{ forgejo.workingdir }}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue
Block a user