Cloudflare Tunnel Gotosocial

· ~radhitya · ⮕tech · #cloudflare #gotosocial

Table of Contents

Now, we can expose our localhost service to the public without a public IP or router setting with Cloudflare Zero Trust and it’s completely free. You need a credit card for registration.

I’m not explaining how to register zero trust, and you can read the documentation on the Cloudflare website .

We need CloudFlared, a lightweight server-side daemon, to connect a tunnel between the localhost and the CloudFlare server. You can download it as a Debian package, RPM, Docker, Mac, or Windows. Also, it has different architectures, like 64-bit, 32-bit, arm64-bit, and arm32-bit.

For Debian,

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb

Then, install the Cloudflare service with your token.

sudo cloudflared service install xxx

Go to the Public Hostname menu and click “Add a public hostname”.

Choose which domain you are using and the port of service. Example: I set localhost:8080 because port 8080 will be a Gotosocial service port.

gotosocial

Fediverse is not just a mastodon, but more than that, one of them is gotosocial.

According to the project github, GoToSocial is a fast and lightweight activitypub social network server written in Golang. Gotosocial does not have a frontend and you have to use another client, like Tusky, Semaphore, and the others. Don’t worry, you will have the same experience: post, read, and follow other accounts.

I like to install Gotosocial via Docker Composer because I just paste the script and start the service.

Create docker-compose.yml for gotosocial.

version: "3.3"

services:
  gts:
    image: superseriousbusiness/gotosocial:latest
    container_name: gts
    user: 1000:1000
    hostname: gts 
    environment:
      GTS_HOST: domain.tld
      GTS_DB_TYPE: sqlite
      GTS_DB_ADDRESS: /gotosocial/storage/sqlite.db
      GTS_LETSENCRYPT_ENABLED: "false"
      GTS_LETSENCRYPT_EMAIL_ADDRESS: ""
      GTS_ADVANCED_RATE_LIMIT_REQUESTS: 0
    ports:
      - "127.0.0.1:8080:8080"
    volumes:
      - ./:/gotosocial/storage     
    restart: "always"

You can change settings using environment variables.

Start the service

$ docker-compose up -d

You should be able to see your instance in the browser.

More information about creating an admin and user is there.

Congratulations! Now you can build you own GotoSocial Cloudflare Tunnel!

Questions or comments? Please feel free to contact me.