selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

OpenFile logo

Self-host OpenFile

Tax filing application forked from IRS Direct File

AlphaOpen SourceOther
Updated4 months ago
LanguageJavaScript
Setup difficultyAdvanced
ThemeDark mode
Stars
186
Ports
3000 (Frontend client (DF_FE_PORT)), 8080 (Backend API (DF_API_PORT)), 5432 (PostgreSQL database (DF_DB_PORT)), 5000 (CSP Authentication Simulator (DF_CSPSIM_PORT)), 5001 (External Service Simulator (DF_EXTSVCSIM_PORT)), 8082 (Status service (DF_STATUS_PORT)), 8083 (Submit service (DF_SUBMIT_PORT)), 3500 (Screener service (DF_SCREENER_PORT)), 9090 (Prometheus monitoring (DF_PROMETHEUS_PORT)), 3030 (Grafana monitoring (DF_GRAFANA_PORT))
Install with Docker Compose

What is OpenFile?

OpenFile is a self-hosted tax filing application forked from the IRS Direct File project. It uses a Fact Graph engine to generate IRS Form 1040 tax returns through an interview-style questionnaire. The application runs via Docker Compose with multiple services including a frontend client, backend API, PostgreSQL databases, authentication simulator, and optional monitoring stack (Prometheus/Grafana). It is designed for developers and tax professionals who want to run their own tax preparation instance. The project notes that the official Direct File project was indefinitely suspended as of November 2025. Configuration is managed through environment variables for ports, database credentials, and service paths.

Should you self-host OpenFile?

OpenFile scores 36/100 on selfhost.directory (how scoring works) and ranks #8 of 9 in Finance & Budgeting. It has 186 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is Other-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is openops (56/100, 1 080 stars). It scores higher overall, so compare the two before you pick. See OpenFile vs openops side by side.

Features

  • Authentication simulator
  • Docker Compose Deployment
  • Monitoring stack (Prometheus/Grafana)
  • Multi-service architecture
  • Tax return generation (Form 1040)

OpenFile README

How to install OpenFile

Install OpenFile with Docker Compose

Environment variables
DF_DB_USER_ID, DF_DB_GROUP_ID, DF_DB_PORT, MEF_APPS_DB_PORT, STATEAPI_DB_PORT, DF_CSPSIM_PORT, DF_EXTSVCSIM_PORT, DF_API_PORT, DF_STATUS_PORT, DF_SUBMIT_PORT, DF_FE_PORT, DF_SCREENER_PORT, DF_PROMETHEUS_PORT, DF_GRAFANA_PORT, DF_CLIENT_PUBLIC_PATH, DF_API_PUBLIC_PATH, MAVEN_OPTS, DF_LISTEN_ADDRESS, DF_DISABLE_AUTO_LOGOUT

git clone https://github.com/openfiletax/openfile.git --recurse-submodules docker compose up -d

Requires Docker and Docker Compose. Ports 3000, 8080, 5432 must be available or configured via environment variables.

How to configure OpenFile

  • DF_API_PORT8080Port the backend app is exposed to outside of docker

    Port the backend app is exposed to outside of docker

  • DF_API_PUBLIC_PATH/df/file/apiPath prefix the api will be served from publicly

    Path prefix the api will be served from publicly

  • DF_CLIENT_PUBLIC_PATH/df/filePath prefix the client will be served from publicly

    Path prefix the client will be served from publicly

  • DF_CSPSIM_PORT5000Port the CSP Simulator will be exposed on outside of the docker network

    Port the CSP Simulator will be exposed on outside of the docker network

  • DF_DB_GROUP_ID999Group id used to run the database

    Group id used to run the database

  • DF_DB_PORT5432Port the backend api database will be exposed on outside of the docker network

    Port the backend api database will be exposed on outside of the docker network

  • DF_DB_USER_ID999User id used to run the database

    User id used to run the database

  • DF_DISABLE_AUTO_LOGOUTfalseDisable autologout. This env var is only read by the node app through VITE, and only on development

    Disable autologout. This env var is only read by the node app through VITE, and only on development

  • DF_EXTSVCSIM_PORT5001Port the External Service Simulator (ESSAR, etc) will be exposed on outside of the docker network

    Port the External Service Simulator (ESSAR, etc) will be exposed on outside of the docker network

  • DF_FE_PORT3000Port that will be exposed to access the frontend through docker

    Port that will be exposed to access the frontend through docker

  • DF_GRAFANA_PORT3030Port that will be exposed to access the Grafana dashboard from docker

    Port that will be exposed to access the Grafana dashboard from docker

  • DF_LISTEN_ADDRESS127.0.0.1Listen address for docker services. Set to "0.0.0.0" to listen on everything

    Listen address for docker services. Set to "0.0.0.0" to listen on everything

  • DF_PROMETHEUS_PORT9090Port that will be exposed to access the Prometheus dashboard from docker

    Port that will be exposed to access the Prometheus dashboard from docker

  • DF_SCREENER_PORT3500Port to access screener in docker

    Port to access screener in docker

  • DF_STATUS_PORT8082Port the status app is exposed to outside of docker

    Port the status app is exposed to outside of docker

  • DF_SUBMIT_PORT8083Port the submit app will run on and is exposed on outside of docker

    Port the submit app will run on and is exposed on outside of docker

  • MAVEN_OPTSExtra options to pass to maven, especially useful for setting a proxy

    Extra options to pass to maven, especially useful for setting a proxy

  • MEF_APPS_DB_PORT32768Port the submit/status database will be exposed on outside of the docker network

    Port the submit/status database will be exposed on outside of the docker network

  • STATEAPI_DB_PORT5433Port the state api database will be exposed on outside of the docker network

    Port the state api database will be exposed on outside of the docker network

More in Finance & Budgeting

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…