PieFed is not anywhere near production-ready software, the following is for developers only.

PieFed requires Python 3.9+ and PostgresSQL.

In a directory when you want the PieFed site to run (e.g. /var/www/)

Download the lastest PieFed code:

git clone

cd pyfedi

create a virtual environment:

python3 -m venv venv

activate virtual environment:

source venv/bin/activate

install python packages:

pip install wheel
pip install -r requirements.txt

configure basic settings:

cp env.sample .env

edit the new .env file  using any text editor, such as nano:

nano .env

Set SECRET_KEY to a random string. Set server_name to your url (without https and without trailing slash). Use if you are doing local development work rather than running in production.

Create an empty database in PostgreSQL with appropriate credentials and then in .env set DATABASE_URL to:


Use to register your site and then put the public and private keys into the .env file.

If your server does not have /dev/shm then change CACHE_DIR to /tmp.

Set up initial database structure

flask db migrate
flask init-db

During init-db you will be asked for login credentials of the admin user. Ensure your firewall is configured to allow port 5000 then run PieFed using a development server to test your setup:

flask run

Then visit <your ip or domain>:5000 and PieShed should display in your browser. See if you can log in.

Exit flask run using Ctrl + C.

For more detailed instructions and edge cases, see