Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Native-Planet/anchor
Self-hosted StarTram service -- access GroundSeg-hosted ships from anywhere
https://github.com/Native-Planet/anchor
Last synced: 3 months ago
JSON representation
Self-hosted StarTram service -- access GroundSeg-hosted ships from anywhere
- Host: GitHub
- URL: https://github.com/Native-Planet/anchor
- Owner: Native-Planet
- License: mit
- Created: 2022-09-14T22:37:36.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T04:13:03.000Z (about 1 year ago)
- Last Synced: 2024-08-03T01:13:06.764Z (6 months ago)
- Language: Shell
- Homepage:
- Size: 73.2 KB
- Stars: 49
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-urbit - Anchor - hosted [StarTram](https://www.nativeplanet.io/startram) service (Developer Tools)
README
![](https://nyc3.digitaloceanspaces.com/startram/anchor.png)
# Native Planet self-hosted Anchor
This is a self-hostable version of the NativePlanet anchor service, a single-tenant version of the subscription StarTram service. Anchor is meant to host a single [GroundSeg](https://nativeplanet.io/software) client, but there are no limits on the number of piers it can host. The installer script is meant to be run on Debian/Ubuntu, but it should work on other distros if you have Python 3 & Ansible installed.
Credit for initial concept due to [odyslam](https://github.com/odyslam) for the [home-urbit](https://github.com/odyslam/home-urbit) project, implemented by Native Planet
### How to use
You'll need set a few things up ahead of time:
- Spin up a VPS (e.g. [DigitalOcean](https://m.do.co/c/94f7fdc03fad) or [Vultr](https://www.vultr.com/?ref=9235764)) and make note of the IP address
- This package is designed to run on Ubuntu 22.04; it works well with typical ~$5 1GB/1CPU instances though could work reasonably on a 512MB/1CPU instance.
- The playbook will automatically provision 2GB swap -- this doesn't work on some hosts, so if it breaks it, just comment out those lines and try again.
- Register a domain (you can re-use an existing one, you'll only be using subdomains)Create the following 5 `A` records for your domain, assigned to your VPS's IP address:
- `anchor.yourdomain.com` -- the anchor URL your NP will connect to
- `ship-name.yourdomain.com` -- The URL of your ship's name
- `s3.ship-name.yourdomain.com` -- These 3 subdomains for Minio
- `console.s3.ship-name.yourdomain.com`
- `bucket.s3.ship-name.yourdomain.com`If you want to run multiple ships, create new subdomains for them (you only need one `anchor` record).
Make sure you can connect to the VPS over SSH as root with an SSH key.
- If you don't have a key, you can generate one with `ssh-keygen -t ed25519 -m PEM -f id_ed25519`
- Copy the contents of your public key from `id_ed25519.pub`
- Get the public key for your keyfile with `ssh-keygen -f ./id_ed25519 -y` if you don't see one
- Connect to your VPS, and use `sudo su -` to switch to `root`
- Open `/root/.ssh/authorized_keys` in a text editor and paste in the public key for your key
- Run `systemctl restart sshd`Clone this git repository on your local computer:
```
git clone https://github.com/Native-Planet/anchor.git
cd anchor
```Open the `settings.sh` file in a text editor and edit the variables, with the root of your domain (`yourdomain.com`), `REG_CODE` as the code you'll use to register your device (🚨 **change this!** 🚨), and the path to the pem file you just generated.
Run `./install.sh` to execute the installer script; it will connect to your VPS (using the `anchor.yourdomain.com` IP address) and download and configure all of the software automatically. Wait until the ansible playbook has completed -- this might take a few minutes on low-spec servers.
On your NativePlanet, go to the settings menu and under the Anchor submenu, select 'custom endpoint' and enter `anchor.yourdomain.com`.