Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14d19a949f
|
||
|
|
e500bff0f1
|
||
|
|
6ba17b951e
|
||
|
|
e97be45bcc
|
||
|
|
c82abea21a
|
||
|
|
6fb95559b5
|
||
|
|
4346acb651
|
@@ -4,6 +4,51 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) but do not follows semantic versioning as it is useless in this type of project.
|
||||
|
||||
## [2.7.4-6] - 2026-08-09
|
||||
|
||||
### Added
|
||||
|
||||
* gpg configuration to skip keyboxd, so importing nocem gpg keys will work.
|
||||
|
||||
### Changed
|
||||
|
||||
* nocem keyring will be removed and re-imported every container launch.
|
||||
|
||||
## [2.7.4-5] - 2026-08-02
|
||||
|
||||
### Added
|
||||
|
||||
* diffutils package installation for actsync to work.
|
||||
|
||||
## [2.7.4-4] - 2026-07-29
|
||||
|
||||
### Added
|
||||
|
||||
* nocem processing enablement with data from https://rosalind.home.xs4all.nl/nocemreg/nocemreg.html.
|
||||
* cleanfeed installation
|
||||
|
||||
### Changed
|
||||
|
||||
* stale pids removal script now always exits 0 if removal failed.
|
||||
|
||||
### Removed
|
||||
|
||||
* start-innd script which was used previously for starting innd.
|
||||
|
||||
## [2.7.4-3] - 2026-07-29
|
||||
|
||||
### Added
|
||||
|
||||
* remove stale pids on container start
|
||||
|
||||
## [2.7.4-2] - 2026-07-26
|
||||
|
||||
### Added
|
||||
|
||||
* switch to s6-overlay (which is more suitable for containers than plain s6).
|
||||
* syslogd support via s6-overlay.
|
||||
* cron daemon with set of default cronjobs.
|
||||
|
||||
## [2.7.4-1] - 2026-07-26
|
||||
|
||||
### Added
|
||||
@@ -19,5 +64,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
||||
|
||||
Initial container release with inn 2.7.4 built with perl/python/sqlite support.
|
||||
|
||||
[2.7.4-6]: https://code.pztrn.name/containers/inn2/compare/2.7.4-5...2.7.4-6
|
||||
[2.7.4-5]: https://code.pztrn.name/containers/inn2/compare/2.7.4-4...2.7.4-5
|
||||
[2.7.4-4]: https://code.pztrn.name/containers/inn2/compare/2.7.4-3...2.7.4-4
|
||||
[2.7.4-3]: https://code.pztrn.name/containers/inn2/compare/2.7.4-2...2.7.4-3
|
||||
[2.7.4-2]: https://code.pztrn.name/containers/inn2/compare/2.7.4-1...2.7.4-2
|
||||
[2.7.4-1]: https://code.pztrn.name/containers/inn2/compare/2.7.4...2.7.4-1
|
||||
[2.7.4]: https://code.pztrn.name/containers/inn2/releases/tag/2.7.4
|
||||
|
||||
+17
-7
@@ -6,6 +6,7 @@ RUN apk add --no-cache \
|
||||
build-base \
|
||||
bzip2 \
|
||||
curl \
|
||||
diffutils \
|
||||
flex \
|
||||
gawk \
|
||||
gd-dev \
|
||||
@@ -19,7 +20,8 @@ RUN apk add --no-cache \
|
||||
perl-utils \
|
||||
python3 \
|
||||
python3-dev \
|
||||
s6 \
|
||||
s6-overlay \
|
||||
s6-overlay-syslogd \
|
||||
shadow \
|
||||
sqlite-dev \
|
||||
ssmtp \
|
||||
@@ -44,18 +46,26 @@ RUN mkdir /src && cd /src && \
|
||||
mv /inn2/etc /inn2/etc-default && \
|
||||
mv /inn2/db /inn2/db-default && \
|
||||
mv /inn2/spool /inn2/spool-default && \
|
||||
# cleanfeed
|
||||
cd /src && curl -sL https://github.com/infybofh/cleanfeed-ng/archive/refs/tags/2026-07-03-rc1.tar.gz | tar xz && cd cleanfeed-ng-2026-07-03-rc1 && \
|
||||
cp cleanfeed /inn2/bin/filter/filter_innd.pl && \
|
||||
mkdir /inn2/etc-default/cleanfeed && \
|
||||
cp cleanfeed.local.example /inn2/etc-default/cleanfeed/cleanfeed.local && \
|
||||
cp samples/* /inn2/etc-default/cleanfeed && \
|
||||
mkdir -p /inn2/spool-default/cleanfeed && \
|
||||
mkdir -p /var/www/ && \
|
||||
chown -R news:news /var/www && \
|
||||
rm -rf /src
|
||||
|
||||
COPY configuration /etc
|
||||
COPY start-innd.sh /start-innd
|
||||
COPY etc /etc
|
||||
|
||||
RUN groupmod -g 600 news && usermod -u 600 -g 600 -d /inn2 news && chown -R news:news /inn2 && chown -R news:news /etc/s6
|
||||
RUN groupmod -g 600 news && usermod -u 600 -g 600 -d /inn2 news && chown -R news:news /inn2 && chown -R news:news /etc/cont-init.d /etc/services.d
|
||||
|
||||
WORKDIR /inn2
|
||||
ENV PATH=/inn2/bin:$PATH
|
||||
USER news
|
||||
ENV CLEANFEED_CONFIG_DIR=/inn2/etc/cleanfeed
|
||||
EXPOSE 119
|
||||
EXPOSE 563
|
||||
VOLUME [ "/inn2/db", "/inn2/spool", "/inn2/log" ]
|
||||
VOLUME [ "/inn2/db", "/inn2/spool", "/inn2/log", "/var/www" ]
|
||||
|
||||
CMD ["/usr/bin/s6-svscan", "/etc/s6"]
|
||||
ENTRYPOINT [ "/init" ]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This repository holds files neccessary to build inn2 (InterNet News 2), a NNTP server.
|
||||
|
||||
This container is based on [greenbender's image](https://github.com/greenbender/inn-docker).
|
||||
This container is based on [greenbender's image](https://github.com/greenbender/inn-docker) and includes enabled nocems processing and cleanfeed.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -26,6 +26,8 @@ services:
|
||||
- "./data/run:/inn2/run"
|
||||
- "./data/spool:/inn2/spool"
|
||||
- "./data/tmp:/inn2/tmp"
|
||||
- "./data/syslog:/var/log"
|
||||
- "./data/www:/var/www"
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 65535
|
||||
@@ -47,6 +49,8 @@ services:
|
||||
- "./data/run:/inn2/run"
|
||||
- "./data/spool:/inn2/spool"
|
||||
- "./data/tmp:/inn2/tmp"
|
||||
- "./data/syslog:/var/log"
|
||||
- "./data/www:/var/www"
|
||||
networks:
|
||||
inn2-ipvlan:
|
||||
ipv4_address: 192.168.168.168 # ip address from real LAN.
|
||||
@@ -81,16 +85,28 @@ Note that this code is built to support dual-stack (IPv4+IPv6). You should eithe
|
||||
|
||||
## Cronjobs
|
||||
|
||||
There is a section in documentation about cron jobs you should configure. This docker image currently isn't supporting these, so configure it separately with lines like:
|
||||
This Docker image come with a recommended in documentation set of cronjobs. To customize it copy `etc/crontabs/news` file, make neccessary changes and mount it to container in `/etc/crontabs/news`.
|
||||
|
||||
If you want to use cron outside of your container:
|
||||
|
||||
```shell
|
||||
0 3 * * * docker compose run inn news.daily expireover lowmark
|
||||
0 3 * * * docker compose run inn news.daily expireover lowmark delayrm
|
||||
```
|
||||
|
||||
## Sending emails
|
||||
|
||||
As this container has no postfix installed (why do you might ever need it here?) you can use [ssmtp](https://wiki.debian.org/sSMTP) which installed in container to get mails sent over SMTP.
|
||||
|
||||
## No See 'Em's
|
||||
|
||||
This container has nocem enabled and neccessary data will be loaded on first start from [NoCeM registry](https://rosalind.home.xs4all.nl/nocemreg/nocemreg.html).
|
||||
|
||||
Make sure you have `news.lists.filters` group created.
|
||||
|
||||
## Cleanfeed
|
||||
|
||||
Cleanfeed is automatically installed from [infybofh's repository](https://github.com/infybofh/cleanfeed-ng). Configuration is located in `/inn2/etc/cleanfeed` directory within container, please configure it according to your needs.
|
||||
|
||||
## Versioning
|
||||
|
||||
Image versioning follows official inn2 versions with additional optional version postfix added to indicate image fixes for particular version.
|
||||
@@ -115,3 +131,14 @@ inn2 is launched as UID/GID 600 in container, so chown directories properly acco
|
||||
|
||||
* If you're not using userns isolation - use `chown 600:600`.
|
||||
* If you're using it - use `600 + id from /etc/subuid`, e.g. if you're using default Docker remapping this could be `chown 100600:100600`.
|
||||
|
||||
## Logs
|
||||
|
||||
Logs are split in two destinations:
|
||||
|
||||
* `/inn2/log` - default INN logs destination.
|
||||
* `/var/log` - syslog logs.
|
||||
|
||||
As INN might log in both of them you should mount a directory for each.
|
||||
|
||||
For syslog logs it is a known bug that logs isn't written in `/var/log/innd` or `/var/log/nnrpd`, take a look at `/var/log/syslogd/everything/current` for logs with `news` topic. This might be fixed somewhere soon.
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
for file in /etc/s6/*/finish; do
|
||||
$file
|
||||
done
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
kill "$(cat /inn2/run/innd.pid)"
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/execlineb -P
|
||||
|
||||
/start-innd
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
kill "$(cat /inn2/run/nnrpd-563.pid)"
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/execlineb -P
|
||||
|
||||
nnrpd -D -f -p 563 -S
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
mkdir -p /var/log/innd
|
||||
chown -R 65534:65534 /var/log/innd
|
||||
chmod 02755 /var/log/innd
|
||||
|
||||
mkdir -p /var/log/nnrpd
|
||||
chown -R 65534:65534 /var/log/nnrpd
|
||||
chmod 02755 /var/log/nnrpd
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -f "/inn2/etc/inn.conf" ]; then
|
||||
cp -r /inn2/etc-default/* /inn2/etc
|
||||
fi
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -f "/inn2/db/history" ]; then
|
||||
cp -r /inn2/db-default/* /inn2/db
|
||||
fi
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -d "/inn2/spool/articles" ]; then
|
||||
cp -r /inn2/spool-default/* /inn2/spool
|
||||
fi
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -f "/etc/gpg/gpg.conf" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
rm -rf /etc/gpg || exit 0
|
||||
mkdir -p /etc/gpg
|
||||
echo "use-keyboxd 0" > /etc/gpg/gpg.conf
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
chown news:news /etc/crontabs/news
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -d "/inn2/etc/pgp" ]; then
|
||||
mkdir -p "/inn2/etc/pgp"
|
||||
fi
|
||||
|
||||
echo "* Downloading NoCeM gpg keys and ctl file..."
|
||||
|
||||
rm /inn2/etc/pgp/ncmring.gpg
|
||||
curl -o /inn2/etc/pgp/ncmring.gpg.source https://rosalind.home.xs4all.nl/nocemreg/ncmring.asc
|
||||
gpg --no-default-keyring --keyring /inn2/etc/pgp/ncmring.gpg --import /inn2/etc/pgp/ncmring.gpg.source
|
||||
chown -R news:news /inn2/etc/nocem.ctl /inn2/etc/pgp
|
||||
|
||||
echo "* Enabling NoCeM processing..."
|
||||
sed -i '/^#nocem/ { s/^#//; n; s/^#//; }' /inn2/etc/newsfeeds
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -d "/inn2/etc/cleanfeed" ]; then
|
||||
cp -r "/inn2/etc-default/cleanfeed" "/inn2/etc"
|
||||
chown -R news:news "/inn2/etc/cleanfeed"
|
||||
fi
|
||||
|
||||
if [ ! -d "/inn2/spool/cleanfeed" ]; then
|
||||
mkdir -p "/inn2/spool/cleanfeed"
|
||||
chown -R news:news "/inn2/spool/cleanfeed"
|
||||
fi
|
||||
|
||||
chown -R news:news /var/www
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm "/inn2/run/*.pid" || exit 0
|
||||
@@ -0,0 +1,5 @@
|
||||
# min hour day month weekday command
|
||||
0 5 * * * cd /inn2; /inn2/bin/news.daily expireover lowmark delayrm
|
||||
15 * * * * cd /inn2; /inn2/bin/rnews -U
|
||||
0 4 * * * cd /inn2; /inn2/bin/ctlinnd -t 120 -s reload incoming.conf 'flush cache'
|
||||
*/10 * * * * cd /inn2; /inn2/bin/nntpsend
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
/usr/sbin/crond -f
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec logutil-service /var/log/innd
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec 2>&1
|
||||
exec s6-setuidgid news /inn2/bin/innd -f
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec logutil-service /var/log/nnrpd
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
exec 2>&1
|
||||
exec s6-setuidgid news nnrpd -D -f -p 563 -S
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -f "/inn2/etc/inn.conf" ]; then
|
||||
cp -r /inn2/etc-default/* /inn2/etc
|
||||
fi
|
||||
|
||||
if [ ! -f "/inn2/db/history" ]; then
|
||||
cp -r /inn2/db-default/* /inn2/db
|
||||
fi
|
||||
|
||||
if [ ! -d "/inn2/spool/articles" ]; then
|
||||
cp -r /inn2/spool-default/* /inn2/spool
|
||||
fi
|
||||
|
||||
cd /inn2 || exit 1
|
||||
|
||||
/inn2/bin/innd -f
|
||||
Reference in New Issue
Block a user