Initial commit
This commit is contained in:
commit
128b34d1c5
|
|
@ -0,0 +1,23 @@
|
|||
FROM debian:buster-slim
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y build-essential \
|
||||
debhelper \
|
||||
libc6 \
|
||||
zlib1g \
|
||||
adduser \
|
||||
libcap2-bin \
|
||||
libwww-perl \
|
||||
libjson-xs-perl \
|
||||
libevent-dev \
|
||||
git \
|
||||
lsb-release
|
||||
|
||||
RUN git clone https://github.com/hessu/aprsc && \
|
||||
cd aprsc/src && \
|
||||
./configure && \
|
||||
make make-deb -j4 && \
|
||||
cd .. && \
|
||||
apt install ./*.deb
|
||||
|
||||
CMD service aprsc start && tail -F /opt/aprsc/logs/aprsc.log
|
||||
|
|
@ -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"
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
# Configuration for aprsc, an APRS-IS server for core servers
|
||||
|
||||
# Your unique server ID
|
||||
ServerId NOCALL
|
||||
# Passcode for the server ID
|
||||
PassCode 0
|
||||
# Who is running this server?
|
||||
MyAdmin "My Name, MYCALL"
|
||||
# The email address where the admin can be reached
|
||||
MyEmail email@example.com
|
||||
|
||||
### 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 hidden
|
||||
Listen "" fullfeed udp :: 10152 hidden
|
||||
|
||||
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.
|
||||
MagicBadness 42.7
|
||||
|
|
@ -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…
Reference in New Issue