Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 13ed7bfcd8 | |||
| 366fdd5d34 | |||
| 9a5b698f78 | |||
| 266a467aa1 | |||
| f2c4e95f6f | |||
| 4340543fd5 | |||
| b3c20b7831 | |||
| 2749347415 | |||
| 80210206bf |
19
Makefile
19
Makefile
@@ -2,14 +2,16 @@ NAME = netoik-git
|
|||||||
VERSION = $(shell git describe --abbrev=0)
|
VERSION = $(shell git describe --abbrev=0)
|
||||||
RELEASE = $(shell git rev-parse --short HEAD)
|
RELEASE = $(shell git rev-parse --short HEAD)
|
||||||
REFERENCE = $(if $(GIT_REFERENCE),$(GIT_REFERENCE),$(shell git branch --show-current))
|
REFERENCE = $(if $(GIT_REFERENCE),$(GIT_REFERENCE),$(shell git branch --show-current))
|
||||||
BUILD_ARCH = noarch
|
ARCH = noarch
|
||||||
|
|
||||||
RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}')
|
RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}')
|
||||||
RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}')
|
RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}')
|
||||||
RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}')
|
RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}')
|
||||||
|
RPM_SHAREDSTATEDIR = $(shell rpm --eval '%{_sharedstatedir}')
|
||||||
RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}')
|
RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}')
|
||||||
RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}')
|
RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}')
|
||||||
RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(NAME)-$(VERSION).tar.gz
|
|
||||||
|
RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(NAME)-$(VERSION)-$(RELEASE).tar.gz
|
||||||
RPM_BUILD_PATH = $(RPM_RPMDIR)/$(BUILD_ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm
|
RPM_BUILD_PATH = $(RPM_RPMDIR)/$(BUILD_ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(BUILD_ARCH).rpm
|
||||||
|
|
||||||
.PHONY: name
|
.PHONY: name
|
||||||
@@ -24,15 +26,16 @@ version:
|
|||||||
release:
|
release:
|
||||||
@echo "$(RELEASE)"
|
@echo "$(RELEASE)"
|
||||||
|
|
||||||
.PHONY: build_arch
|
.PHONY: arch
|
||||||
build_arch:
|
arch:
|
||||||
@echo "$(BUILD_ARCH)"
|
@echo "$(ARCH)"
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
install --mode=755 --directory $(DESTDIR)$(RPM_SYSCONFDIR)/gitea $(DESTDIR)$(RPM_UNITDIR) $(DESTDIR)/actrunners
|
install --mode=755 --directory $(DESTDIR)$(RPM_SYSCONFDIR)/gitea $(DESTDIR)$(RPM_SYSCONFDIR)/nginx/conf.d $(DESTDIR)$(RPM_UNITDIR) $(DESTDIR)$(RPM_SHAREDSTATEDIR)/actrunners
|
||||||
install --mode=644 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/gitea files/gitea/app.ini
|
install --mode=644 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/nginx/conf.d/ files/nginx/git.netoik.io.conf
|
||||||
install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR)/ files/systemd/gitea.service files/systemd/actrunner@.service
|
install --mode=640 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/gitea files/gitea/app.ini
|
||||||
|
install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR) files/systemd/gitea.service files/systemd/actrunner@.service
|
||||||
|
|
||||||
$(RPM_TARBALL_PATH): *
|
$(RPM_TARBALL_PATH): *
|
||||||
git archive --format=tar.gz \
|
git archive --format=tar.gz \
|
||||||
|
|||||||
@@ -30,4 +30,4 @@ DISABLE_REGISTRATION = true
|
|||||||
|
|
||||||
[session]
|
[session]
|
||||||
PROVIDER = redis
|
PROVIDER = redis
|
||||||
PROVIDER_CONFIG = /run/redis/redis.sock
|
PROVIDER_CONFIG = /run/valkey/valkey.sock
|
||||||
|
|||||||
9
files/nginx/git.netoik.io.conf
Normal file
9
files/nginx/git.netoik.io.conf
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name git.netoik.io;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:3000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ After=network.target gitea.service
|
|||||||
ExecStartPre=/usr/bin/rpmdev-setuptree
|
ExecStartPre=/usr/bin/rpmdev-setuptree
|
||||||
ExecStart=/usr/local/bin/act_runner daemon
|
ExecStart=/usr/local/bin/act_runner daemon
|
||||||
ExecReload=/bin/kill -s HUP $MAINPID
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
WorkingDirectory=/opt/actrunners/actrunner%i
|
WorkingDirectory=/var/lib//actrunners/actrunner%i
|
||||||
TimeoutSec=0
|
TimeoutSec=0
|
||||||
RestartSec=10
|
RestartSec=10
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Gitea (Git with a cup of tea)
|
Description=Gitea (Git with a cup of tea)
|
||||||
After=network.target postgresql.service
|
After=network.target postgresql.service valkey.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
RestartSec=2s
|
RestartSec=2s
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ Summary: Netoik Reverse Proxy
|
|||||||
License: MIT
|
License: MIT
|
||||||
URL: https://git.netoik.io/samuel/%(make name)
|
URL: https://git.netoik.io/samuel/%(make name)
|
||||||
|
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}-%{release}.tar.gz
|
||||||
Buildarch: %(make build_arch)
|
Buildarch: %(make arch)
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
Requires: netoik-db git
|
Requires: netoik-rp netoik-db netoik-cache git
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Install the Git UI server called Gitea.
|
Install the Git UI server called Gitea.
|
||||||
@@ -22,15 +22,62 @@ Install the Git UI server called Gitea.
|
|||||||
%make_install
|
%make_install
|
||||||
|
|
||||||
%post
|
%post
|
||||||
|
# Download gitea bin and verify gpg signature
|
||||||
|
wget --output-document %{_tmppath}/gitea "$GITEA_BIN_URL"
|
||||||
|
wget --output-document %{_tmppath}/gitea.asc "$GITEA_ASC_URL"
|
||||||
|
gpg --keyserver "$GITEA_GPG_KEYSERVER" --recv "$GITEA_GPG_RECV"
|
||||||
|
gpg --verify %{_tmppath}/gitea.asc %{_tmppath}/gitea
|
||||||
|
mv %{_tmppath}/gitea %{_sbindir}
|
||||||
|
chmod 755 %{_sbindir}/gitea
|
||||||
|
rm %{_tmppath}/gitea.asc
|
||||||
|
|
||||||
|
# Create gitea user
|
||||||
|
useradd --system --create-home --bade-dir %{_sharedstatedir} gitea
|
||||||
|
runuser --user gitea -- mkdir --parents %{_sharedstatedir}/gitea/{data,custom}
|
||||||
|
|
||||||
|
# Generate internal token and secret key
|
||||||
|
INTERNAL_TOKEN="$(gitea generate secret INTERNAL_TOKEN)"
|
||||||
|
SECRET_KEY="$(gitea generate secret SECRET_KEY)"
|
||||||
|
envsubst < %{_sysconfdir}/gitea/app.ini > %{_sysconfdir}/gitea/app.ini.new
|
||||||
|
mv %{_sysconfdir}/gitea/app.ini.new %{_sysconfdir}/gitea/app.ini
|
||||||
|
chmod 600 %{_sysconfdir}/gitea/app.ini
|
||||||
|
|
||||||
|
# Create actrunners
|
||||||
|
for i in $(seq 1 $GITEA_ACT_RUNNERS); do
|
||||||
|
if ! id "actrunner$i"; then
|
||||||
|
useradd --system --create-home --base-dir %{_sharedstatedir}/actrunners "actrunner$i"
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl reenable "actrunner@$i"
|
||||||
|
systemctl restart "actrunner@$i"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Start gitea service
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl reenable gitea.service
|
||||||
|
systemctl restart gitea.service
|
||||||
|
|
||||||
|
%preun
|
||||||
|
# Backup gitea data in case of problem
|
||||||
|
gitea dump --config %{_sysconfdir}/gitea/app.ini --tempdir %{_tmppath}
|
||||||
|
|
||||||
|
%postun
|
||||||
|
# Remove gitea user after uninstall
|
||||||
|
if [ %1 == 0 ]; then
|
||||||
|
systemctl stop gitea.service
|
||||||
|
userdel --force --remove gitea
|
||||||
|
fi
|
||||||
|
|
||||||
%files
|
%files
|
||||||
|
%attr(644, root, root) %{_sysconfdir}/nginx/conf.d/git.netoik.io.conf
|
||||||
|
|
||||||
%dir %attr(755, root, root) %{_sysconfdir}/gitea
|
%dir %attr(755, root, root) %{_sysconfdir}/gitea
|
||||||
%attr(600, root, root) %{_sysconfdir}/gitea/app.ini
|
%attr(640, root, gitea) %{_sysconfdir}/gitea/app.ini
|
||||||
|
|
||||||
%attr(644, root, root) %{_unitdir}/gitea.service
|
%attr(644, root, root) %{_unitdir}/gitea.service
|
||||||
%attr(644, root, root) %{_unitdir}/actrunner@.service
|
%attr(644, root, root) %{_unitdir}/actrunner@.service
|
||||||
|
|
||||||
%dir %attr(755, root, root) /opt/actrunners
|
%dir %attr(755, root, root) %{_sharedstatedir}/actrunners
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
%autochangelog
|
%autochangelog
|
||||||
|
|||||||
Reference in New Issue
Block a user