sandstorm-io/sandcats

Name: sandcats

Owner: Sandstorm.io

Description: Services for Sandstorm self-hosters: Dynamic DNS & HTTPS certificates

Created: 2015-02-24 18:40:58.0

Updated: 2018-01-31 14:23:56.0

Pushed: 2016-08-04 22:56:46.0

Homepage:

Size: 368

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Sandcats dynamic DNS server software

This is an open source (Apache License 2.0) software package that can be installed on a Linux server that creates a dynamic DNS zone. It speaks an API that the Sandstorm server will implement support for, so that when people install the Sandstorm personal server platform, they can have a DNS zone with dynamic updates.

It uses the following technologies:

Build Status

Alternatives

If you want a general-purpose dynamic DNS service to use with your own non-Sandstorm server, check out the list below.

Similarly, if you want to run a dynamic DNS service for the Internet, you might prefer the software in the list below. The Sandcats software has very few features.

Other software/services:

How to run this: Three ways

Way 1: Production-style

In production, the following are true:

You can simulate production-style by using Vagrant and doing the following:

grant up
ter vagrant up, you should set up nginx on port 80 & 443
thin the VM.

u can access it as port 8080 & 8443 on the host.
grant reload
lariously, the Vagrant basebox we're using doesn't have
stemd by default, so we must reboot into systemd.
grant ssh
g in, so you can pick up where it left off.
 /vagrant
ke stage-provision
eat! Now surf to localhost:8080 and/or https://localhost:8443/.

If you want, you can run some automated tests:

grant ssh
 /vagrant
ke action-run-tests
Way 2: Using Vagrant, but with code auto-reload

Do something very like the above, but then:

do service sandcats stop
 /vagrant/sandcats
teor run --settings=dev-settings.json
Way 3: On your own machine, without Vagrant

This will work, but since there are a lot of dependencies, you'll be mostly on your own. Here's the overview:

Install dependencies

To run this in development mode, install the dependency packages as follows:

ke

This will use the Makefile at the top level of this repository to make sure your system has all the needed dependencies. Read that file if you are curious what the package needs.

Configure MySQL database

Here's a manual process you can do:

 "CREATE DATABASE sandcats_pdns;" | mysql -uroot
ILE="$(mktemp /tmp/sandcats.XXXXXX)"
n -s 16 > "$TMPFILE"
 "CREATE USER sandcats_pdns IDENTIFIED BY '$(cat $TMPFILE)';" | mysql -uroot
 "GRANT ALL on sandcats_pdns.* TO 'sandcats_pdns'@'localhost';" | mysql -uroot
Create Meteor configuration file

The sandcats/dev-settings.json file should contain approximately the following:

1_HOSTNAME": "ns1.sandcatz.io",
2_HOSTNAME": "ns2.sandcatz.io",
SE_DOMAIN": "sandcatz.io",
WERDNS_USER": "sandcats_pdns",
WERDNS_DB": "sandcats_pdns",
WERDNS_PASSWORD": "3Rb4k4BQqKr59Ewj",
P_PING_PORT": 8080

If you chose a different database name or password etc., then by all means adjust the configuration accordingly.

Start the server
 sandcats
teor run --settings dev-settings.json

Roadmap for sandcats & sandstorm

Version 1
Version 2

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.