diff --git a/.gitignore b/.gitignore index e2bdca9..b1128d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.swp *.env +/.idea diff --git a/README.md b/README.md index dddecc2..0941668 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,90 @@ -# netoik-rp +![Continuous Integration](https://git.netoik.io/samuel/netoik-rp/actions/workflows/ci.yaml) -Netoïk reverse proxy \ No newline at end of file +![Continuous Delivery](https://git.netoik.io/samuel/netoik-rp/actions/workflows/cd.yaml) + +# 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 + ```