You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
not-cdn a060f85532 8 months ago
Caddyfile 8 months ago
LICENSE 8 months ago
README.md 8 months ago
setup.sh 8 months ago
start.sh 8 months ago
stop.sh 8 months ago

README.md

not-server

not-server is a set of scripts that gives you the ability to network install to Tinfoil/SX Installer from a remote location.

NO USER SUPPORT IS PROVIDED

Features

  • Can be set up in ~5 minutes
  • Does not use significant local space
  • Does not require FUSE support or root access (see FAQ)
  • Password protected, (semi-anonymized) logging enabled

Requirements

  • Bandwidth (Traffic generated will be 2x the content size)
  • A local or remote copy of content on a supported backend (ie. Google Drive)
  • SSH access to the server you will host on
  • BASIC command line skills - current script supports Linux and macOS

Usage

  • Download and install Tinfoil or SX Installer
  • Download not-server
    • Run git clone https://git.teknik.io/not-cdn/not-server.git && cd not-server
    • alternative, manual version: wget https://git.teknik.io/not-cdn/not-server/archive/master.zip && unzip not-server-master.zip && rm not-server-master.zip && cd not-server
    • If the below commands error out, you’ll need to run chmod +x {script}.sh
  • Run setup.sh for one time setup
  • Run start.sh to start not-server
  • Configure a new network location via locations.conf (for Tinfoil) or directly on your Switch (for SX Installer)
  • Download and install content
  • Run stop.sh to stop not-server

locations.conf example

Replace hostname:port in url, user, and password.

[
	{
		"title": "Base",
		"url": "http://hostname:port/base/",
		"user": "user",
		"password": "letmein"
	},
    {
		"title": "Updates",
		"url": "http://hostname:port/updates/",
		"user": "user",
		"password": "letmein"
	},
	{
		"title": "DLC",
		"url": "http://hostname:port/dlc/",
		"user": "user",
		"password": "letmein"
	}
]

SX installer example

Protocol - http
Host - hostname
Port - port
Path - /base
Username - user
Password - letmein
repeat for updates and dlc locations, changing Path to /updates or /dlc respectively

FAQ

I don’t have root, this won’t work!

That’s not a question. The script can accommodate rclone and caddy executables placed in the same folder. If you don’t have root, you’ll need to manually download, unzip, and make executable those two programs. For example, on Linux it’d look something like:

caddy - https://caddyserver.com/download

wget "https://caddyserver.com/download/linux/amd64?license=personal&telemetry=off" -O caddy.tar.gz
tar -xvf caddy.tar.gz caddy && rm caddy.tar.gz && chmod +x caddy

rclone - https://rclone.org/downloads/

wget "https://downloads.rclone.org/rclone-current-linux-amd64.zip" -O rclone.zip
unzip rclone.zip rclone-v1.46-linux-amd64/rclone
mv rclone-v1.46-linux-amd64/rclone . && rmdir rclone-v1.46-linux-amd64/
chmod +x rclone

How do I get a nice URL instead of an IP address?

Use a free DDNS (dynamic DNS) provider (no-ip, Duck DNS, Dynu) or your own domain and set it as the hostname (first line) in the Caddyfile.

How do I allow multiple users, each with a unique login?

You’ll need to append additional lines with a format of basicauth / {USER} {PASS} to the Caddyfile. Read this for more details.

Why and how did you make this?

Why not? Made with rclone + caddy

Why isn’t there a Windows version?

Lack of personal interest. Pull Requests are welcome for a Batch or PowerShell version. A simple alternative is to run both rclone and caddy as Windows services, using something like NSSM and pulling the required parameters for rclone/caddy from start.sh.