Skip to content

anonymousoverflow Setup

In this tutorial we're going to look at how to setup AnonymousOverflow, a privacy front-end for StackOverflow.

Initial Setup

First git-clone it and run it via docker-compose:

[ nowhere.moe ] [ /dev/pts/1 ] [/srv]
→ git clone https://github.com/httpjamesm/AnonymousOverflow
Cloning into 'AnonymousOverflow'...
remote: Enumerating objects: 778, done.
remote: Counting objects: 100% (287/287), done.
remote: Compressing objects: 100% (92/92), done.
remote: Total 778 (delta 197), reused 255 (delta 177), pack-reused 491
Receiving objects: 100% (778/778), 133.76 KiB | 7.04 MiB/s, done.
Resolving deltas: 100% (432/432), done.

[ nowhere.moe ] [ /dev/pts/1 ] [/srv]
→ cd AnonymousOverflow

[ nowhere.moe ] [ /dev/pts/1 ] [/srv/AnonymousOverflow]
→ ls
config  docker-compose.example.yml  Dockerfile  env  go.mod  go.sum  LICENSE  main.go  public  README.md  src  templates

[ nowhere.moe ] [ /dev/pts/1 ] [/srv/AnonymousOverflow]
→ cat docker-compose.yml
version: '3'

services:
  anonymousoverflow:
    container_name: 'app'
    build:
      context: .
    environment:
      - APP_URL=https://overflow.nowhere.moe
      - JWT_SIGNING_SECRET=nlkdwadwawwadwawa
    ports:
      - '8081:8080'
    restart: 'always'

[ nowhere.moe ] [ /dev/pts/1 ] [/srv/AnonymousOverflow]
→ docker-compose up -d
Recreating app ... done

[ nowhere.moe ] [ /dev/pts/1 ] [/srv/AnonymousOverflow]
→ docker container ls
CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
fd597c0798ca   anonymousoverflow_anonymousoverflow   "/anonymousoverflow"     16 seconds ago   Up 15 seconds             0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   app

then we setup a reverse nginx proxy on it:

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ vim overflow.nowhere.moe.conf

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ cat overflow.nowhere.moe.conf
server {
        listen 443 ssl;
        server_name overflow.nowhere.moe;

        ssl_certificate /etc/acme/certs/overflow.nowhere.moe/overflow.nowhere.moe.cer;
    ssl_certificate_key /etc/acme/certs/overflow.nowhere.moe/overflow.nowhere.moe.key;

    ######## TOR CHANGES ########
    listen 4443;
    listen [::]:4443;
    server_name overflow.daturab6drmkhyeia4ch5gvfc2f3wgo6bhjrv3pz6n7kxmvoznlkq4yd.onion;
    add_header Onion-Location "http://overflow.daturab6drmkhyeia4ch5gvfc2f3wgo6bhjrv3pz6n7kxmvoznlkq4yd.onion$request_uri" always;
    ######## TOR CHANGES ########

   location / {
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_pass http://localhost:8081;
    }

}

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ ln -s /etc/nginx/sites-available/overflow.nowhere.moe.conf /etc/nginx/sites-enabled

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ nginx -t
2023/07/16 00:10:22 [warn] 200694#200694: "ssl_stapling" ignored, issuer certificate not found for certificate "/etc/acme/certs/nitter.nowhere.moe/nitter.nowhere.moe.cer"
2023/07/16 00:10:22 [emerg] 200694#200694: cannot load certificate "/etc/acme/certs/overflow.nowhere.moe/overflow.nowhere.moe.cer": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/etc/acme/certs/overflow.nowhere.moe/overflow.nowhere.moe.cer, r) error:10000080:BIO routines::no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ systemctl stop nginx

[ nowhere.moe ] [ /dev/pts/1 ] [/etc/nginx/sites-available]
→ bash
root@Datura /etc/nginx/sites-available # history | grep acme | tail -n2
  299  acme.sh --issue --standalone -d whoogle.nowhere.moe -k 4096
  315  history | grep acme | tail -n2
root@Datura /etc/nginx/sites-available # acme.sh --issue --standalone -d overflow.nowhere.moe -k 4096

root@Datura /etc/nginx/sites-available # nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

root@Datura /etc/nginx/sites-available # systemctl start nginx

Then check if your instance is accessible:

Then contribute to the project by listing your instance for other users like so


Nihilist
Donate XMR to Nihilist:
8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o
7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8