Recent updates πŸ—žοΈ

πŸ€‘ NVDA announced 2nd quarter earnings of $13.51bn doubling YoY growth
πŸ“ˆ ARM and Klaviyo IPO’s upcoming
πŸ¦„ Zepto becomes India’s first unicorn of 2023 (Series E funding of $200 million)
πŸŽ“ Learning Finance II and Global Econ!

Switching from disqus to remark42

I have been looking at open source alternatives to disqus and was considering remark42 given it’s lightweight and ease of self hosting options. Finally settled on hosting remark42 on a Google Compute (e2-micro) instance (link to free tier offerings) and deploying with docker compose.

Pro Tip: To get a free tier GCP e2-micro vm - ensure you select e2-micro 0.5 shared core VM with (balanced) standard disk (10gb)

Free compute instance on GCP e2-micro

Free compute instance on GCP e2-micro

Remark42 allows you to have a self-hosted, lightweight, and simple (yet functional) comment engine , which doesn’t spy on users. It can be embedded into blogs, articles or any other place where readers add comments. (Scroll below to see a demo of this in action!)

Configuration: remark42 server

Big shout out πŸ‘ to MK from Dev Bits and Bytes whose blog was the primary source for my configuration.

Here is an example of my docker-compose.yml -

services:
  remark:
    # remove the next line in case you want to use this docker-compose separately
    # as otherwise it would complain for absence of Dockerfile
    build: .
    image: umputun/remark42:latest
    container_name: "remark42"
    hostname: "remark42"
    restart: always

    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "5"

    # uncomment to expose directly (no proxy)
    ports:
      - "8080:8080"

    environment:
      - REMARK_URL=https://remark42.thoughtinvest.com
      - SITE=remark42.thoughtinvest.com
      - DEBUG=true
      - AUTH_ANON=true
      - AUTH_GOOGLE_CID=XXXXX.apps.googleusercontent.com
      - AUTH_GOOGLE_CSEC=XXX-XXXX
      #- AUTH_GITHUB_CID
      #- AUTH_GITHUB_CSEC
      # Enable it only for the initial comment import or for manual backups.
      # Do not leave the server running with the ADMIN_PASSWD set if you don't have an intention
      # to keep creating backups manually!
      # - ADMIN_PASSWD=<your secret password>
    volumes:
      - ./var:/srv/var

Configuration: nginx

I used nginx as the the reverse proxy for the web app hosted on 8080. Here’s the conf file for nginx, SSL is managed by certbot -

server {

    server_name remark42.thoughtinvest.com;

    location / {
         proxy_set_header        X-Forwarded-Proto $scheme;
         proxy_set_header        X-Real-IP $remote_addr;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header        Host $http_host;
         proxy_pass              http://127.0.0.1:8080;
     }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/remark42.thoughtinvest.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/remark42.thoughtinvest.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = remark42.thoughtinvest.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot



    listen 80;
    listen [::]:80;

    server_name remark42.thoughtinvest.com;
    return 404; # managed by Certbot
}

I am looking forward to continue to add more features to the site and overall make the experience as self managed as possible.

Cheers πŸ₯‚