Lasa is a stateless proxy that generates a RSS or an Atom feed from a Standard.site publication. lasa.anhgelus.world
rss atom atprotocol standard-site atproto
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Deploying Lasa#

Lasa can be deployed as a standalone binary or inside a container.

Standalone binary#

Clone the repo with:

git clone -b <tag> https://tangled.org/anhgelus.world/lasa .

where <tag> is the tag that you want to use.

We recommend you to install just (a command runner). Of course, you can manually execute commands. If you want to have the man pages installed, ensure that scdoc is here too.

Then, you can run

just install

to install the binaries and the man pages in /usr/local/. If /usr/local/man/man1 doesn't exist, it tries to create it. You can create it before to avoid running the command as root.

If you don't have a supported Go version (e.g., the version installed is too old), you can use the environment variable GOTOOLCHAIN to set it, e.g.,

GOTOOLCHAIN=go1.26.2 just install

Then, you can generate the config file with lasad gen-config at /etc/lasad.toml. See lasad(1) for more information.

Container#

The official image is atcr.io/anhgelus.world/lasa and is based on Alpine Linux. Sadly, to download it, you must be connected to actr.io.

You can also build the image by yourself by simply cloning the repo and running:

docker build -t lasa .

An example compose.yml is available in the repo. The profile prod uses the official image.

The config file is stored in /etc/lasad/config.toml. You can mount it with -v ./config:/etc/lasad/. The default config file is already generated. The exposed port is 8000.

Configuration#

The config file only requires two informations: the port and the domain (for security headers).

domain = "lasa.example.org"
port = 8000

You can specify the legal notice with

legal_notice_url = "https://example.org/legal"

If you want to log 400 and 404 as warning, uncomment these lines:

# if you want to log HTTP 404 responses
log_not_found = true
# if you want to log HTTP 400 responses
log_bad_request = true

Redis#

Lasa supports Redis as a cache. You can connect it by uncommenting and filling the required information in cache section of the config file, e.g.

[cache]
host = "localhost"
port = 6379
db = 0
duration = 60 # cache duration in minutes

If your Redis server requires auth, you can fill these information in cache.auth section, e.g.

[cache.auth]
username = "foo"
password = "bar"
client_name = "baz"