#Phase 1 Spec
Goal: Noah and my websites should be hosted on the service.
- Point system towards git repo and clone / place it in filesystem.
- name.negativefour.com points towards hosted website.
- A .union address is created.
- I can host multiple webpages on a server using a wildcard dns
record. Writeup here.
- I can install ssl certificates for *.negativefour.com. See
"Configuring SSL" in the link above.
- I can create a .union address for a webpage running locally using
- I'm not convinced that using stem is actually preferable to just
modifying the torrc config.
- Determine the name of the user.
- Clone a git repo and place its contents in
- Determine what internal port to use for the hidden service.
- Write the relevant config information to our
- Determine the hostname that tor assigned the union service.
- Using the internal port and hostname create an appache config file
called a config file called
Down the line I see there being three services involved here.
serve - serves static webpages.
build - clones and builds webpages into static files.
think - serves frontend and manages api calls to serve and build.
Here, we are designing serve. Serve will take a link to a tarball
containing a static website, and a name. It will then download that
tarball and deploy the website at
HTML form with the website name and a tarball with the website inside
seems like a fine approach.
Run at serve.negativefour.com. Listens for incoming requests and:
- Unpacks the provided tarball.
- Places the unpacked tarball in
- Chooses a number for the site where the hidden service port will
- Creates the hidden service.
- Finds the url of the hidden service.
- Creates an apache2 config file for the service in
/etc/apache2/sites-available/<NAME>.conf using the hidden service
- Enables the webpage.
stretch: creates a SSL cert if
name is not part of
This can be insanely dumb. Just a html form with the name and tarball.