atproto-static-web

Crates.ioatproto-static-web
lib.rsatproto-static-web
version0.2.1
created_at2025-08-06 00:16:59.506101+00
updated_at2025-08-09 00:33:47.785214+00
descriptionA web server that presents AT Proto posts without Javascript.
homepage
repositoryhttps://git.average.name/AverageHelper/atproto-static-web
max_upload_size
id1783210
size680,811
(AverageHelper)

documentation

README

atproto-static-web

A web server that presents AT Proto posts without Javascript.

[!WARNING] This project is a work-in-progress. Expect bugs and UI weirdness. Contributions welcome!

Configuration

The server is configured using environment variables.

  • ADDRESS: the IP address on which the server will listen for connections. Defaults to "[::]", the "unspecified" IPv6 address.
  • HOST: the domain name where the front-end is hosted, e.g. example.com. Must be provided.
  • HTTP_PORT: the port on which the server will listen for HTTP connections. Defaults to 8080.
  • LOG_LEVEL: the level at which log messages should be printed to the console. Must be one of error, warn, info, debug, or trace. Defaults to warn in Release mode and debug in Development mode.
  • PDS_URL: the URL which should receive AT Proto API calls, e.g. https://public.api.bsky.app/. Must be provided.
  • SITE_NAME: the name which the front-end should call this web service. Defaults to "AT Proto Static".

When building in Development mode, environment values are read from a .env file in the current working directory, if one exists. In Release mode, you should provide env values another way.

Installation

Using Docker Compose

Create a compose.yml file similar to the compose.example.yml file provided, then run the following:

docker compose pull
docker compose up -d

Build from source

With cargo installed, clone the repo and run the following:

export HOST='example.com'
export PDS_URL='https://public.api.bsky.app/'
cargo run --release
Commit count: 0

cargo fmt