diff --git a/gitea/cpapache.sls b/gitea/cpapache.sls new file mode 100644 index 0000000..1804805 --- /dev/null +++ b/gitea/cpapache.sls @@ -0,0 +1,7 @@ +{# +vim /etc/apache2/conf.d/userdata/std/2/keiran5/git.keiran.us/git.keiran.us.conf +/scripts/verify_vhost_includes --commit /scripts/ensure_vhost_includes --all-users +/scripts/rebuildhttpdconf +/usr/local/cpanel/scripts/restartsrv_httpd --graceful +go to http://git.keiran.us/install +#} diff --git a/gitea/dirs.sls b/gitea/dirs.sls new file mode 100644 index 0000000..b7ec3e8 --- /dev/null +++ b/gitea/dirs.sls @@ -0,0 +1,21 @@ +{% macro mkdir(dirname, mode, require_basepath=True) %} +{{ salt.pillar.get('gitea:path') }}/{{dirname}}: + file.directory: + - user: {{ salt.pillar.get('gitea:user') }} + - group: {{ salt.pillar.get('gitea:user') }} + - mode: {{mode}} +{% if require_basepath %} + - require: + - file: {{ salt.pillar.get('gitea:path') + '/' }} +{% endif %} +{% endmacro %} + +{{ mkdir('', 755, require_basepath=False) }} + +{% for dirname in ['data', 'indexers', 'log', 'etc'] %} + {{ mkdir(dirname, 750) }} +{% endfor %} + +{% for dirname in ['bin', 'custom', 'public'] %} + {{ mkdir(dirname, 755) }} +{% endfor %} diff --git a/gitea/files/systemd_service.jinja b/gitea/files/systemd_service.jinja new file mode 100644 index 0000000..db9835a --- /dev/null +++ b/gitea/files/systemd_service.jinja @@ -0,0 +1,29 @@ +[Unit] +Description=Gitea (Git with a cup of tea) +After=syslog.target +After=network.target +After=mariadb.service + +[Service] +# Modify these two values and uncomment them if you have +# repos with lots of files and get an HTTP error 500 because +# of that +### +#LimitMEMLOCK=infinity +#LimitNOFILE=65535 +RestartSec=2s +Type=simple +User={{ pillar['gitea']['user'] }} +Group={{ pillar['gitea']['user'] }} +WorkingDirectory={{ pillar['gitea']['path'] }} +ExecStart={{ pillar['gitea']['path'] }}/bin/gitea web -c {{ pillar['gitea']['path'] }}/etc/app.ini +Restart=always +Environment=USER={{ pillar['gitea']['user'] }} HOME={{ pillar['gitea']['path'] }} GITEA_WORK_DIR={{ pillar['gitea']['path'] }} +# If you want to bind Gitea to a port below 1024 uncomment +# the two values below +### +#CapabilityBoundingSet=CAP_NET_BIND_SERVICE +#AmbientCapabilities=CAP_NET_BIND_SERVICE + +[Install] +WantedBy=multi-user.target diff --git a/gitea/init.sls b/gitea/init.sls new file mode 100644 index 0000000..6be2136 --- /dev/null +++ b/gitea/init.sls @@ -0,0 +1,5 @@ +include: + - gitea.dirs + - gitea.install + - gitea.systemd + - gitea.cpapache diff --git a/gitea/install.sls b/gitea/install.sls new file mode 100644 index 0000000..6e0e1ae --- /dev/null +++ b/gitea/install.sls @@ -0,0 +1,14 @@ +{% set ver = salt.pillar.get('gitea:version') %} +{% set url = 'https://github.com/go-gitea/gitea/releases/download/v' + + ver + '/gitea-' + ver + '-linux-amd64' +%} +{% set basepath = salt.pillar.get('gitea:path') %} + +wget {{ url }} -O {{ basepath }}/bin/gitea && chmod +x {{ basepath }}/bin/gitea && echo {{ ver }} > {{ basepath }}/VERSION: + cmd.run: + - unless: grep -P '^{{ ver }}$' {{ basepath }}/VERSION + - runas: {{ salt.pillar.get('gitea:user') }} + - require: + - sls: gitea.dirs + +# need to setup etc/ diff --git a/gitea/systemd.sls b/gitea/systemd.sls new file mode 100644 index 0000000..5dd7750 --- /dev/null +++ b/gitea/systemd.sls @@ -0,0 +1,22 @@ +/etc/systemd/system/gitea.service: + file.managed: + - source: 'salt://gitea/files/systemd_service.jinja' + - template: jinja + - user: root + - group: root + - mode: 644 + - require: + - sls: gitea.install + +# systemctl daemon-reload +service.systemctl_reload: + module.run: + - onchanges: + - file: /etc/systemd/system/gitea.service + +gitea: + service.running: + - enable: True + - watch: + - file: /etc/systemd/system/gitea.service + diff --git a/top.sls b/top.sls index 76ab6be..1a5ad96 100644 --- a/top.sls +++ b/top.sls @@ -1,3 +1,5 @@ {{saltenv}}: '*': - ssh + 'vps47492.inmotionhosting.com': + - gitea