initial upload
This commit is contained in:
parent
4c51c600fc
commit
9305e79243
@ -1,3 +0,0 @@
|
|||||||
# aprsc-docker
|
|
||||||
|
|
||||||
APRSC Server als Docker-Container für Rasperry OS 64Bit
|
|
25
build/aprsc/Dockerfile
Normal file
25
build/aprsc/Dockerfile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y build-essential \
|
||||||
|
debhelper \
|
||||||
|
libc6 \
|
||||||
|
zlib1g \
|
||||||
|
adduser \
|
||||||
|
libcap2-bin \
|
||||||
|
libwww-perl \
|
||||||
|
libjson-xs-perl \
|
||||||
|
libevent-dev \
|
||||||
|
libevent-2.1-7 \
|
||||||
|
libssl-dev libcap-dev libz-dev libsctp-dev \
|
||||||
|
git \
|
||||||
|
lsb-release
|
||||||
|
|
||||||
|
RUN git clone https://github.com/hessu/aprsc && \
|
||||||
|
cd aprsc/src && \
|
||||||
|
./configure && \
|
||||||
|
make make-deb && \
|
||||||
|
cd .. && \
|
||||||
|
apt-get install ./*.deb
|
||||||
|
|
||||||
|
CMD service aprsc start && tail -F /opt/aprsc/logs/aprsc.log
|
27
config/default/aprsc
Normal file
27
config/default/aprsc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# STARTAPRSC: start aprsc on boot. Should be set to "yes" once you have
|
||||||
|
# configured aprsc.
|
||||||
|
#
|
||||||
|
STARTAPRSC="yes"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Additional options that are passed to the Daemon.
|
||||||
|
# Description of used options (don't change these unless
|
||||||
|
# you're sure what you're doing):
|
||||||
|
# -u aprsc: switch to user 'aprsc' as soon as possible
|
||||||
|
# -t /opt/aprsc: chroot to the given directory
|
||||||
|
# -f: fork to a daemon
|
||||||
|
# -e info: log at level info
|
||||||
|
# -o file: log to file
|
||||||
|
# -r logs: log files are placed in /opt/aprsc/logs
|
||||||
|
# -c etc/aprsc.conf: configuration file location
|
||||||
|
#
|
||||||
|
# Since the daemon chroots to /opt/aprsc, all paths are relative to
|
||||||
|
# that directory and the daemon cannot access any files outside
|
||||||
|
# the chroot.
|
||||||
|
#
|
||||||
|
# aprsc can log to syslog too, but that'd require bringing the
|
||||||
|
# syslog socket within the chroot.
|
||||||
|
#
|
||||||
|
|
||||||
|
DAEMON_OPTS="-u aprsc -t /opt/aprsc -f -e info -o file -r logs -c etc/aprsc.conf"
|
123
config/etc/aprsc.conf
Normal file
123
config/etc/aprsc.conf
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
# Configuration for aprsc, an APRS-IS server for core servers
|
||||||
|
|
||||||
|
# Your unique server ID
|
||||||
|
ServerId N0CALL
|
||||||
|
# Passcode for the server ID
|
||||||
|
PassCode
|
||||||
|
# Who is running this server?
|
||||||
|
MyAdmin "Admin Name, MYCALL"
|
||||||
|
# The email address where the admin can be reached
|
||||||
|
MyEmail jane@doe.tld
|
||||||
|
|
||||||
|
### Directories #########
|
||||||
|
# Data directory (for persistent state files - currently none)
|
||||||
|
RunDir data
|
||||||
|
|
||||||
|
# If logging to a file (-o file), enable built-in log rotation.
|
||||||
|
# LogRotate <megabytes> <filecount>
|
||||||
|
# "LogRotate 10 5" keeps 5 old files of 10 megabytes each.
|
||||||
|
LogRotate 1000 1
|
||||||
|
|
||||||
|
### Intervals and timers #########
|
||||||
|
# Interval specification format examples:
|
||||||
|
# 600 (600 seconds), or 600s, 5m, 2h, 1h30m, 1d3h15m24s, etc...
|
||||||
|
|
||||||
|
# When no data is received from an upstream server in N seconds, switch to
|
||||||
|
# another server.
|
||||||
|
UpstreamTimeout 15s
|
||||||
|
|
||||||
|
# When no data is received from a downstream server in N seconds, disconnect
|
||||||
|
ClientTimeout 48h
|
||||||
|
|
||||||
|
### TCP listener ##########
|
||||||
|
# Listen <socketname> <porttype> tcp <address to bind> <port> <options...>
|
||||||
|
# socketname: any name you wish to show up in logs and statistics
|
||||||
|
# porttype: one of:
|
||||||
|
# fullfeed - everything, after dupe filtering
|
||||||
|
# igate - igate / client port with user-specified filters
|
||||||
|
# udpsubmit - UDP packet submission port (8080)
|
||||||
|
# dupefeed - duplicate packets dropped by the server
|
||||||
|
# options:
|
||||||
|
# filter "m/500" - force a filter for users connected here
|
||||||
|
# maxclients 100 - limit clients connected on this port
|
||||||
|
# acl etc/client.acl - match client addresses against ACL
|
||||||
|
# hidden - don't show the port in the status page
|
||||||
|
#
|
||||||
|
# If you wish to provide UDP service for clients, set up a
|
||||||
|
# second listener on the same address, port and protocol.
|
||||||
|
#
|
||||||
|
# The "::" is IPv6 "IN6ADDR_ANY", whereas "0.0.0.0" is same
|
||||||
|
# with IPv4.
|
||||||
|
#
|
||||||
|
# On FreeBSD you need to have separate listeners for IPv4 and
|
||||||
|
# IPv6. On Linux, just use :: alone - the IPv6 listener will
|
||||||
|
# catch the IPv4 connections just as well.
|
||||||
|
#
|
||||||
|
# Example of normal server ports for Linux, supporting both TCP and UDP,
|
||||||
|
# IPv4 and IPv6:
|
||||||
|
#
|
||||||
|
Listen "Full feed" fullfeed tcp :: 10152
|
||||||
|
Listen "" fullfeed udp :: 10152
|
||||||
|
|
||||||
|
Listen "Client-Defined Filters" igate tcp :: 14580
|
||||||
|
Listen "" igate udp :: 14580
|
||||||
|
|
||||||
|
#Listen "350 km from my position" igate tcp :: 20350 filter "m/350"
|
||||||
|
#Listen "" igate udp :: 20350 filter "m/350"
|
||||||
|
|
||||||
|
Listen "UDP submit" udpsubmit udp :: 8080
|
||||||
|
|
||||||
|
### Uplink configuration ########
|
||||||
|
# Uplink <name> <type> tcp <address> <port>
|
||||||
|
# name: a name of the server or service you're connecting to
|
||||||
|
# type: one of:
|
||||||
|
# full - full feed
|
||||||
|
# ro - read-only, do not transmit anything upstream
|
||||||
|
#
|
||||||
|
# If you wish to specify multiple alternative servers, use multiple
|
||||||
|
# Uplink lines, one for each server.
|
||||||
|
#
|
||||||
|
# Normally a single line for the 'rotate' address is fine - it will connect
|
||||||
|
# to one of the servers in a random fashion and go for another one should
|
||||||
|
# the first one become unavailable.
|
||||||
|
#
|
||||||
|
#Uplink "Core rotate" full tcp rotate.aprs.net 10152
|
||||||
|
#Uplink "Core rotate" ro tcp rotate.aprs.net 10152
|
||||||
|
|
||||||
|
# OPTIONAL: Bind source address before connecting to an uplink
|
||||||
|
# You can enter two addresses, one for IPv4 and one for IPv6 connections.
|
||||||
|
# Needed if you have multiple IP addresses on your server and only one
|
||||||
|
# of them is allowed to connect by the remote server.
|
||||||
|
#UplinkBind 127.0.0.1
|
||||||
|
#UplinkBind ::1
|
||||||
|
|
||||||
|
### HTTP server ##########
|
||||||
|
# HTTPStatus port provides a status view to web browsers.
|
||||||
|
# IPv6+IPv4 support works slightly differently than in Listen:
|
||||||
|
# :: is "all addresses" for IPv6, 0.0.0.0 for IPv4, but
|
||||||
|
# :: only works if you actually have a global IPv6 address
|
||||||
|
# configured on the system.
|
||||||
|
# The example is for IPv4, change the address to :: if you have
|
||||||
|
# IPv6. For FreeBSD, or if you wish to support multiple specific
|
||||||
|
# ports/addresses, use multiple HTTPStatus directives for each.
|
||||||
|
HTTPStatus 0.0.0.0 14501
|
||||||
|
# HTTPUpload port allows position uploads over HTTP
|
||||||
|
HTTPUpload 0.0.0.0 8080
|
||||||
|
|
||||||
|
### Environment ############
|
||||||
|
# When running this server as super-user, the server can (in many systems)
|
||||||
|
# increase several resource limits, and do other things that less privileged
|
||||||
|
# server can not do.
|
||||||
|
#
|
||||||
|
# The FileLimit is resource limit on how many simultaneous connections and
|
||||||
|
# some other internal resources the system can use at the same time.
|
||||||
|
# If the server is not being run as super-user, this setting has no effect
|
||||||
|
# in case it is above what normal user can set.
|
||||||
|
#
|
||||||
|
FileLimit 10000
|
||||||
|
|
||||||
|
### Operator attention span qualification run ###########
|
||||||
|
# After configuring the rest of the settings, remove this bad command
|
||||||
|
# from the configuration file. It's here only to avoid starting the
|
||||||
|
# server up accidentally with an invalid configuration.
|
||||||
|
# OffMagicBadness 42.7
|
65
config/etc/gai.conf
Normal file
65
config/etc/gai.conf
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Configuration for getaddrinfo(3).
|
||||||
|
#
|
||||||
|
# So far only configuration for the destination address sorting is needed.
|
||||||
|
# RFC 3484 governs the sorting. But the RFC also says that system
|
||||||
|
# administrators should be able to overwrite the defaults. This can be
|
||||||
|
# achieved here.
|
||||||
|
#
|
||||||
|
# All lines have an initial identifier specifying the option followed by
|
||||||
|
# up to two values. Information specified in this file replaces the
|
||||||
|
# default information. Complete absence of data of one kind causes the
|
||||||
|
# appropriate default information to be used. The supported commands include:
|
||||||
|
#
|
||||||
|
# reload <yes|no>
|
||||||
|
# If set to yes, each getaddrinfo(3) call will check whether this file
|
||||||
|
# changed and if necessary reload. This option should not really be
|
||||||
|
# used. There are possible runtime problems. The default is no.
|
||||||
|
#
|
||||||
|
# label <mask> <value>
|
||||||
|
# Add another rule to the RFC 3484 label table. See section 2.1 in
|
||||||
|
# RFC 3484. The default is:
|
||||||
|
#
|
||||||
|
#label ::1/128 0
|
||||||
|
#label ::/0 1
|
||||||
|
#label 2002::/16 2
|
||||||
|
#label ::/96 3
|
||||||
|
#label ::ffff:0:0/96 4
|
||||||
|
#label fec0::/10 5
|
||||||
|
#label fc00::/7 6
|
||||||
|
#label 2001:0::/32 7
|
||||||
|
#
|
||||||
|
# This default differs from the tables given in RFC 3484 by handling
|
||||||
|
# (now obsolete) site-local IPv6 addresses and Unique Local Addresses.
|
||||||
|
# The reason for this difference is that these addresses are never
|
||||||
|
# NATed while IPv4 site-local addresses most probably are. Given
|
||||||
|
# the precedence of IPv6 over IPv4 (see below) on machines having only
|
||||||
|
# site-local IPv4 and IPv6 addresses a lookup for a global address would
|
||||||
|
# see the IPv6 be preferred. The result is a long delay because the
|
||||||
|
# site-local IPv6 addresses cannot be used while the IPv4 address is
|
||||||
|
# (at least for the foreseeable future) NATed. We also treat Teredo
|
||||||
|
# tunnels special.
|
||||||
|
#
|
||||||
|
# precedence <mask> <value>
|
||||||
|
# Add another rule to the RFC 3484 precedence table. See section 2.1
|
||||||
|
# and 10.3 in RFC 3484. The default is:
|
||||||
|
#
|
||||||
|
#precedence ::1/128 50
|
||||||
|
#precedence ::/0 40
|
||||||
|
#precedence 2002::/16 30
|
||||||
|
#precedence ::/96 20
|
||||||
|
#precedence ::ffff:0:0/96 10
|
||||||
|
#
|
||||||
|
# For sites which prefer IPv4 connections change the last line to
|
||||||
|
#
|
||||||
|
#precedence ::ffff:0:0/96 100
|
||||||
|
|
||||||
|
#
|
||||||
|
# scopev4 <mask> <value>
|
||||||
|
# Add another rule to the RFC 6724 scope table for IPv4 addresses.
|
||||||
|
# By default the scope IDs described in section 3.2 in RFC 6724 are
|
||||||
|
# used. Changing these defaults should hardly ever be necessary.
|
||||||
|
# The defaults are equivalent to:
|
||||||
|
#
|
||||||
|
#scopev4 ::ffff:169.254.0.0/112 2
|
||||||
|
#scopev4 ::ffff:127.0.0.0/104 2
|
||||||
|
#scopev4 ::ffff:0.0.0.0/96 14
|
7
config/etc/hosts
Normal file
7
config/etc/hosts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
ff00::0 ip6-mcastprefix
|
||||||
|
ff02::1 ip6-allnodes
|
||||||
|
ff02::2 ip6-allrouters
|
||||||
|
172.23.0.2 f1c65619c58a
|
20
config/etc/nsswitch.conf
Normal file
20
config/etc/nsswitch.conf
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# /etc/nsswitch.conf
|
||||||
|
#
|
||||||
|
# Example configuration of GNU Name Service Switch functionality.
|
||||||
|
# If you have the `glibc-doc-reference' and `info' packages installed, try:
|
||||||
|
# `info libc "Name Service Switch"' for information about this file.
|
||||||
|
|
||||||
|
passwd: files
|
||||||
|
group: files
|
||||||
|
shadow: files
|
||||||
|
gshadow: files
|
||||||
|
|
||||||
|
hosts: files dns
|
||||||
|
networks: files
|
||||||
|
|
||||||
|
protocols: db files
|
||||||
|
services: db files
|
||||||
|
ethers: db files
|
||||||
|
rpc: db files
|
||||||
|
|
||||||
|
netgroup: nis
|
2
config/etc/resolv.conf
Normal file
2
config/etc/resolv.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
nameserver 127.0.0.11
|
||||||
|
options ndots:0
|
15
docker-compose.yml
Normal file
15
docker-compose.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
aprsc:
|
||||||
|
build: ./build/aprsc/.
|
||||||
|
volumes:
|
||||||
|
- ./config/default:/etc/default:rw
|
||||||
|
- ./config/etc:/opt/aprsc/etc/:rw
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
- 10152:10152
|
||||||
|
- 14501:14501
|
||||||
|
- 14580:14580
|
||||||
|
privileged:
|
||||||
|
true
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user