Blog of science and life


Backup Sqlite3 with Litestream - Tutorial

What is backup and restore?

Backup: Imagine on a Sunday morning, your hard drive dies. You can't access anything. Your bitcoin wallet's private key is the only copy, and it's on that hard drive. Sounds horrifying, right? That's when a backup comes in handy and saves the day (and maybe your life too).

Restore: Backups are amazing, but if done incorrectly, you're screwed. So every time you make a backup, make sure to try restoring it, even just once is more than enough. You'll thank yourself later. You'll feel like a god, being able to see the future and prevent disasters.

In this era of information, it's crucial to have a snapshot of your important data somewhere else. Having three copies will do the trick. More is even better.

What is Sqlite3?

Sqlite3 is an amazing database; you don't need to run any processes for your database anymore. Just write …

Read more

Pywright - Render javascript websites


What is Playwright?

Playwright is a browser automation library from Microsoft. It can be used to automate tasks in the browser, for testing purpose.

But we can use it to scrape data from websites that use javascript to render the content.

Think about Facebook, Twitter, Instagram, etc. They use javascript to render the content. So we can't scrape them with normal tools like requests or scrapy.

Selenium is a popular tool for scraping javascript websites. It's powerful, have a lot of features, but it's slow and hard to use.

Playwright is a newplayer in this field. It's fast, have excelent simple API.

What is Pywright?

Pywright is a API service writen in python that use Playwright to render javascript websites. You can easily deploy it to any cloud provider then use it as a service.

Install Pywright

I've created a docker image for Playwright. It's contain …

Read more

Deploy "The Lounge" on

What is "The Lounge"?

"The Lounge" is a self-hosted web IRC client. It's a fork of Shout, which is no longer maintained. The Lounge is actively maintained and has a lot of features.

Screen shot:

The Lounge


Deploy on

Follow these steps to deploy "The Lounge" on

1. Create Dockerfile

FROM thelounge/thelounge:latest


2. Create new app

Run fly launch and follow the instruction. You can choose any name and server region you want.

Or you can copy this fly.toml file (replace <app-name> with your app name):

# fly.toml file generated for iirc on 2022-11-17T21:46:27+07:00

app = "<app-name>"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []


  allowed_public_ports = []
  auto_rollback = true


  http_checks = []
  internal_port = 9000
  processes = ["app"]
  protocol = "tcp"
  script_checks = []
    hard_limit = 25
    soft_limit = 20
    type = "connections"

    force_https …
Read more

Page 1 / 4 »