How-to guide

Required settings

You will configure atfs with the environment variables it needs for a first setup.


atfs reads local configuration from a small set of ATFS_* environment variables. The full table lives at Settings reference. This page explains the ones that matter for a first setup.

ATFS_OWNER_DID is required. It names the atproto DID or handle that owns the instance. The owner’s dev.atfs.server record is where the rest of the instance’s configuration lives.

Setting ATFS_OWNER_DID does not grant upload rights by itself. The owner must also appear in the dev.atfs.server record’s accounts list, the same as any other account.

Tip

A fresh owner is not automatically an uploader. Add the owner’s own DID to accounts if it should be able to upload to its own instance.

ATFS_DATA_DIR is where blobs and the node’s libp2p identity are stored. Its default differs by platform.

With onboard eMMC, the default is the eMMC, formatted automatically on first boot. Without onboard eMMC, it is the SD card’s own /data partition.

The default is /data, the image’s working directory.

ATFS_IDENTITY_KEY is normally left empty. atfs generates a libp2p identity key on first run and keeps it in the data directory. Set this variable only to hand an instance an identity in advance. It also restores a key onto a data directory that lost one.

Setting the variables

The common variables are the same everywhere. How you set them differs by platform.

Edit the file config/env/ATFS_OWNER_DID on the card’s atfs-boot FAT32 partition. Each setting is its own file, with a sibling .explain.md file describing what to type into it.

See DIY editing for the full mount-and-edit walkthrough. If you would rather not edit files by hand, the setup tool sets this for you before you ever flash the card.

Pass the variable with -e on docker run:

docker run -d -e ATFS_OWNER_DID=did:plc:yourowndid -v atfs-data:/data \
  -p 2837:80 jphastings/atfs

Set other variables the same way, one -e KEY=VALUE per flag.