Add the dbip mod

This commit is contained in:
quietsy
2021-12-04 18:36:33 +02:00
parent d1dc6e5858
commit 9a0b5ce95d
9 changed files with 98 additions and 69 deletions
+40 -12
View File
@@ -1,17 +1,45 @@
# Rsync - Docker mod for openssh-server
# DBIP Docker mod for Nginx based images
This mod adds rsync to openssh-server, to be installed/updated during container start.
This mod downloads the `dbip-country-lite.mmdb` database under `/config/geoip2db`, the database is updated weekly.
In openssh-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:openssh-server-rsync`
**This mod should not be enabled together with the swag-maxmind mod.**
If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:openssh-server-rsync|linuxserver/mods:openssh-server-mod2`
Follow these steps to enable the dbip mod:
# Mod creation instructions
1. In the container's docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:swag-dbip`
If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:swag-dbip|linuxserver/mods:swag-mod2`
2. Add the following line to `/config/nginx/nginx.conf` under the `http` section:
```nginx
include /config/nginx/dbip.conf;
```
3. Edit `/config/nginx/dbip.conf` and add countries to the blocklist / whitelist according to the comments, for example:
```nginx
map $geoip2_data_country_iso_code $geo-whitelist {
default no;
UK yes;
}
* Fork the repo, create a new branch based on the branch `template`.
* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done.
* Inspect the `root` folder contents. Edit, add and remove as necessary.
* Edit this readme with pertinent info, delete these instructions.
* Finally edit the `.github/workflows/BuildImage.yml`. Customize the build branch, and the vars for `BASEIMAGE` and `MODNAME`.
* Ask the team to create a new branch named `<baseimagename>-<modname>`. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the `template` branch.
* Submit PR against the branch created by the team.
map $geoip2_data_country_iso_code $geo-blacklist {
default yes;
US no;
}
```
4. Use the definitions in the following way:
```nginx
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name some-app.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
if ($lan-ip = yes) { set $geo-whitelist yes; }
if ($geo-whitelist = no) { return 404; }
location / {
```
5. Recreate the container to apply the changes.