869533d9 |
apt update -y
apt upgrade -y
apt install -y sudo build-essential htop nginx libevent* debhelper libssl-dev libcap-dev libz-dev libwww-perl
apt --fix-broken install
adduser --system --no-create-home --home /var/run/aprsc --shell /usr/sbin/nologin --group aprsc
cd wget http://he.fi/aprsc/down/aprsc-latest.tar.gz
tar xvfz aprsc-latest.tar.gz
rm -rf aprsc-latest.tar.gz
cd aprsc-*
cd src
./configure
make make-deb
sudo dpkg -i ../aprsc-*.deb
sudo systemctl enable aprsc
tee /etc/default/aprsc <<EOF
#
# 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"
EOF
|
869533d9 |
### 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 10 5
### 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
EOF
reboot
|