Compare commits

..

11 Commits

Author SHA1 Message Date
09d04cc063 doc: move badges
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-17 14:13:10 +01:00
e351eaea47 doc: fix badges 2026-02-17 14:12:00 +01:00
2c20d96e99 doc: improve readme 2026-02-17 14:03:52 +01:00
84e97fe190 ci: fetch depth 0
Some checks failed
Continuous Delivery / build_n_upload (push) Has been cancelled
2026-02-17 02:09:28 +01:00
d97626ffd2 ci: fetch tags 2026-02-17 02:08:15 +01:00
5c57534ab9 ci: fix shellcheck target 2026-02-17 02:04:42 +01:00
051c806332 ci: fix shellcheck targets 2026-02-17 02:02:59 +01:00
34279dd21c ci: add shellcheck targets 2026-02-17 02:01:57 +01:00
6b5679e3fe ci: remove systemdlint 2026-02-17 01:07:13 +01:00
82fd911427 ci: add rpm build 2026-02-17 00:15:48 +01:00
c2401ee8da ci: add ci workflow 2026-02-17 00:13:05 +01:00
6 changed files with 112 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
name: Continuous Integration
name: Continuous Delivery
on:
push:
@@ -6,7 +6,7 @@ on:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
build:
build_n_upload:
runs-on: linux
steps:
- name: Git checkout

22
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,22 @@
name: Continuous Integration
on:
push:
branches:
- main
jobs:
lint_n_build:
runs-on: linux
steps:
- name: Git checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
fetch-tags: true
- name: Lint shell scripts
run: shellcheck files/sbin/certbot_renew
- name: Build tarball
run: make tarball
- name: Build rpm file
run: rpmbuild -ba netoik-rp.spec

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
*.swp
*.env
/.idea

View File

@@ -1,5 +1,5 @@
NAME = netoik-rp
VERSION = $(shell git describe --always --tags --abbrev=0)
VERSION = $(shell git describe --abbrev=0)
RELEASE = $(shell git rev-parse --short HEAD)
REFERENCE = $(if $(GIT_REFERENCE),$(GIT_REFERENCE),$(shell git branch --show-current))
BUILD_ARCH = noarch

View File

@@ -1,3 +1,86 @@
# netoik-rp
# Netoïk reverse proxy ![badge](https://git.netoik.io/samuel/netoik-rp/actions/workflows/ci.yaml/badge.svg) ![badge](https://git.netoik.io/samuel/netoik-rp/actions/workflows/cd.yaml/badge.svg)
Netoïk reverse proxy
Build an RPM package which will install several tools.
- `Nginx` with:
- ssl settings
- security headers
- default site configuration
- `Certbot` certificates with:
- ovh configuration to renew certs
- a command tool certbot_renew
- a systemctl certbot renew timer
# Development
A `Makefile` is integrated to let you run some basic commands.
- To display some information about the project
```shell
make name
make version
make release
make build_arch
```
- To build a tarball:
```shell
make tarball
```
- To build a rpm package:
```shell
rpmbuild -ba netoik-rp.spec
```
- To upload rpm package to Gitea repository:
```shell
# This command needs 2 env variables:
# GIT_PACKAGES_USERNAME and GIT_PACKAGES_TOKEN
make upload
```
# CI / CD
Two workflows are set up.
- Continuous Integration:
- triggered by each push on branch `main`
- runs shellcheck on script `certbot_renew`
- builds tarball and rpm package to test everything is OK
- Continuous Delivery:
- triggered by each tag pushed
- builds tarball
- builds and uploads rpm package to `Gitea` repository
# Deployment
Security Notes:
- no Continuous Deployment set for security reasons **(1)**
- no GPG signing for security reasons **(1)**
**(1)** Act runner does not have sudo access, which prevents
from deploying via `dnf` and signing via `gpg`
Some commands to deploy the RPM package on server:
```shell
# Add Gitea repo to your repolist
dnf config-manager --add-repo https://git.netoik.io/api/packages/samuel/rpm.repo
# Check Gitea repo is added
dnf repolist | grep gitea-samuel
# Show available package releases
dnf --showduplicates netoik-rp
# Install or upgrade package
dnf --nogpgcheck install netoik-rp
dnf --nogpgcheck upgrade netoik-rp
```

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
sleep $(($RANDOM % 3600));
sleep $((RANDOM % 3600));
/opt/certbot/bin/pip install --upgrade certbot certbot-nginx certbot-dns-ovh
certbot renew --cert-name netoik.io