Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c2b680c6df | |||
| 545898493c | |||
| 1f91ec0de9 | |||
| 8805f6cddd | |||
| 9f31148f46 | |||
| 4d85b2a212 | |||
| 3048ea2716 | |||
| d04bdce2f7 | |||
| b91099579e | |||
| 729b4bdd6e |
@@ -22,25 +22,6 @@ Install the Git server called Gitea.
|
||||
%make_install
|
||||
|
||||
%post
|
||||
# Download and install gitea binary
|
||||
export ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
|
||||
export GITEA_BINARY=gitea-1.25.5-linux-$ARCH
|
||||
wget --directory-prefix %{_tmppath} https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY
|
||||
wget --directory-prefix %{_tmppath} https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY.asc
|
||||
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
||||
gpg --verify %{_tmppath}/$GITEA_BINARY.asc %{_tmppath}/$GITEA_BINARY
|
||||
rm %{_tmppath}/$GITEA_BINARY.asc
|
||||
chmod 755 %{_tmppath}/$GITEA_BINARY
|
||||
mv %{_tmppath}/$GITEA_BINARY.asc %{_sbindir}/gitea
|
||||
|
||||
# Replace secrets in app.ini
|
||||
export INTERNAL_TOKEN=$(runuser --user=gitea -- gitea generate secret INTERNAL_TOKEN)
|
||||
export JWT_SECRET=$(runuser --user=gitea -- gitea generate secret JWT_SECRET)
|
||||
export SECRET_KEY=$(runuser --user=gitea -- gitea generate secret SECRET_TOKEN)
|
||||
envsubst < %{_sysconfdir}/gitea/app.ini > %{_sysconfdir}/gitea/.app.ini.new
|
||||
mv %{_sysconfdir}/gitea/.app.ini.new %{_sysconfdir}/gitea/app.ini
|
||||
chown root:gitea %{_sysconfdir}/gitea/app.ini
|
||||
|
||||
# Create gitea user
|
||||
if ! id gitea >/dev/null 2>&1; then
|
||||
useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system gitea
|
||||
@@ -49,15 +30,38 @@ runuser --user=gitea -- mkdir --parents %{_sharedstatedir}/gitea/{custom,data,lo
|
||||
runuser --user=gitea -- ln --symbolic --force %{_sysconfdir}/gitea/app.ini %{_sharedstatedir}/gitea/custom/conf/app.ini
|
||||
usermod --groups postgres,valkey --append gitea
|
||||
|
||||
# Download and install gitea binary
|
||||
export ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
|
||||
export GITEA_BINARY=gitea-1.25.5-linux-$ARCH
|
||||
wget --output-document $GITEA_BINARY https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY
|
||||
wget --output-document $GITEA_BINARY.asc https://dl.gitea.com/gitea/1.25.5/$GITEA_BINARY.asc
|
||||
gpg --keyserver hkps://keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
||||
gpg --verify $GITEA_BINARY.asc $GITEA_BINARY
|
||||
rm $GITEA_BINARY.asc
|
||||
chmod 755 $GITEA_BINARY
|
||||
mv $GITEA_BINARY %{_sbindir}/gitea
|
||||
|
||||
# Replace secrets in app.ini
|
||||
export INTERNAL_TOKEN=$(runuser --user=gitea -- gitea generate secret INTERNAL_TOKEN)
|
||||
export JWT_SECRET=$(runuser --user=gitea -- gitea generate secret JWT_SECRET)
|
||||
export SECRET_KEY=$(runuser --user=gitea -- 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 640 %{_sysconfdir}/gitea/app.ini
|
||||
chown root:gitea %{_sysconfdir}/gitea/app.ini
|
||||
|
||||
# Add lugit theme
|
||||
wget -O %{_tmppath}/gitea-lugit-theme.tar.gz https://github.com/lucas-labs/gitea-lugit-theme/releases/download/v1.0.1/gitea-lugit-theme.tar.gz
|
||||
runuser --user=gitea -- tar --extract --gzip --overwrite --directory=%{_sharedstatedir}/gitea/custom --file %{_tmppath}/gitea-lugit-theme.tar.gz
|
||||
runuser --user=gitea -- mv %{_tmppath}/gitea_images/* %{_sharedstatedir}/gitea/custom/public/assets/img
|
||||
rm --recursive %{_tmppath}/gitea_images
|
||||
export GITEA_LUGIT_THEME=gitea-lugit-theme
|
||||
wget --output-document %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz https://github.com/lucas-labs/gitea-lugit-theme/releases/download/v1.0.1/$GITEA_LUGIT_THEME.tar.gz
|
||||
runuser --user=gitea -- tar --extract --gzip --overwrite --directory=%{_sharedstatedir}/gitea/custom --file %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz
|
||||
rm %{_tmppath}/$GITEA_LUGIT_THEME.tar.gz
|
||||
runuser --user=gitea -- cp %{_tmppath}/gitea_images/* %{_sharedstatedir}/gitea/custom/public/assets/img
|
||||
|
||||
# Create postgres user and db
|
||||
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet gitea; then
|
||||
runuser --user=postgres -- createuser gitea
|
||||
fi
|
||||
if ! runuser --user=postgres -- psql --quiet --tuples-only --command='\l' | grep --quiet gitea; then
|
||||
runuser --user=postgres -- createdb --owner=gitea gitea
|
||||
fi
|
||||
|
||||
@@ -69,16 +73,17 @@ fi
|
||||
|
||||
# Download and install act_runner binary
|
||||
export ACTRUNNER_BINARY=act_runner-0.3.0-linux-$ARCH
|
||||
wget --directory-prefix %{_tmppath} https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz
|
||||
wget --directory-prefix %{_tmppath} https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz.sha256
|
||||
cat %{_tmppath}/$ACTRUNNER_BINARY.xz.sha256 | sha256sum --check --status
|
||||
unxz %{_tmppath}/$ACTRUNNER_BINARY.xz
|
||||
wget --output-document $ACTRUNNER_BINARY.xz https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz
|
||||
wget --output-document $ACTRUNNER_BINARY.xz.sha256 https://gitea.com/gitea/act_runner/releases/download/v0.3.0/$ACTRUNNER_BINARY.xz.sha256
|
||||
cat $ACTRUNNER_BINARY.xz.sha256 | sha256sum --check --status
|
||||
rm $ACTRUNNER_BINARY.xz.sha256
|
||||
unxz $ACTRUNNER_BINARY.xz
|
||||
rm $ACTRUNNER_BINARY.xz
|
||||
chmod 755 $ACTRUNNER_BINARY
|
||||
mv $ACTRUNNER_BINARY %{_sbindir}/act_runner
|
||||
rm %{_tmppath}/$ACTRUNNER_BINARY.*
|
||||
|
||||
# Create 4 actrunner users
|
||||
export ACTRUNNER_TOKEN=$(runuser --user=gitea -- gitea actions generate-token-runner --scope samuel)
|
||||
export ACTRUNNER_TOKEN=$(runuser --user=gitea -- gitea actions generate-runner-token)
|
||||
for i in $(seq 1 4); do
|
||||
if ! id actrunner$i >/dev/null 2>&1; then
|
||||
useradd --base-dir %{_sharedstatedir} --create-home --shell $SHELL --system actrunner$i
|
||||
@@ -95,13 +100,27 @@ systemctl reenable gitea.service
|
||||
systemctl restart gitea.service nginx.service
|
||||
|
||||
%postun
|
||||
# If removing, delete users and db
|
||||
# If uninstalling, then delete users and db
|
||||
if [ $1 == 0 ]; then
|
||||
userdel --force --remove gitea
|
||||
runuser --user=postgres -- psql --command='DROP DATABASE gitea; DROP USER gitea;'
|
||||
for i in $(seq 1 4); then
|
||||
userdel --force --remove actrunner$i
|
||||
fi
|
||||
# Remove gitea user if existing
|
||||
if id gitea >/dev/null 2>&1; then
|
||||
userdel --force --remove gitea
|
||||
fi
|
||||
|
||||
# Remove gitea database if existing
|
||||
if runuser --user=postgres -- psql --quiet --tuples-only --command='\l' | grep --quiet gitea; then
|
||||
runuser --user=postgres -- dropdb gitea
|
||||
fi
|
||||
if runuser --user=postgres -- psql --quiet --tuples-only --command='\du' | grep --quiet gitea; then
|
||||
runuser --user=postgres -- dropuser gitea
|
||||
fi
|
||||
|
||||
# Remove actrunner users if existing
|
||||
for i in $(seq 1 4); do
|
||||
if id actrunner$i >/dev/null 2>&1; then
|
||||
userdel --force --remove actrunner$i
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
%files
|
||||
@@ -115,7 +134,9 @@ fi
|
||||
|
||||
%ghost %attr(755, root, root) %{_sbindir}/gitea
|
||||
%ghost %attr(755, root, root) %{_sbindir}/act_runner
|
||||
%exclude %{_tmppath}/gitea_images/*
|
||||
|
||||
%dir %attr(755, root, root) %{_tmppath}/gitea_images
|
||||
%attr(644, root, root) %{_tmppath}/gitea_images/{favicon,logo}.{png,svg}
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
||||
Reference in New Issue
Block a user