callsigns v2.6.0
callsigns
This is the code that powers callsigns.ca. It started with the simple desire for a simple mobile friendly way of searching the Canadian Callsign Database and ended with me developing my own website.
Features
- mobile friendly design that also works on the desktop and in the terminal
- bilingual user interface (English and French)
- no advertisements nor any form of monetization (strictly non-commercial)
- no login required to access any part of the site
- no social media buttons to distract you
- no cookies beyond an ephemeral session cookie for language preference
- free and open source code
Requirements
- systemd
- iptables
- nginx
- openssl
- mysql
- wget
- unzip
- node.js
- npm
- letsencrypt
Installation
Grab the source code:
mkdir -p /var/node && cd /var/node
git clone git://github.com/tcort/callsigns.git && cd callsigns
Install the dependencies:
npm install
Configure iptables:
iptables-restore < ./etc/iptables/rules.v4
ip6tables-restore < ./etc/iptables/rules.v6
apt-get install iptables-persistent
Configure:
$EDITOR config.json
Populate the database:
/var/node/callsigns/db/refresh.sh
Add a cron job to refresh the database:
crontab -e
15 1 * * * /var/node/callsigns/db/refresh.sh >/dev/null 2>&1
Configure rsyslog
:
sudo -e /etc/rsyslog.conf
local5.* /var/log/callsigns.log
sudo service rsyslog restart
logger -p local5.info "Test"
Get SSL Certificates:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto --agree-dev-preview --server \
https://acme-v01.api.letsencrypt.org/directory certonly
Generate DHE Parameters:
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Configure nginx:
cp /var/node/callsigns/etc/nginx/sites-available/callsigns.ca /etc/nginx/sites-available/callsigns.ca
$EDITOR /etc/nginx/sites-available/callsigns.ca
systemctl restart nginx
Configure the service:
cp /var/node/callsigns/etc/systemd/system/callsigns.service /etc/systemd/system/callsigns.service
systemctl enable callsigns
systemctl start callsigns
Testing
Once the service is up and running, execute npm test
to perform some end-to-end tests.
License
Code License: see LICENSE.md
Data License: see Terms and Conditions on the Industry Canada website.
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago