faf /

Filename Size Date modified Message
faf
1.2 KB
186 B

faf - fire and forget web apps

Basic idea is a wrapper for simple flask apps that require very little infrastructure to run - specifically, no database.

Look in a directory for application directories. Each is expected to have a requirements.txt, a setup.py, and to be installable via pip. Install the requirements and the app, and host using werkzeug's DispatcherMiddleware at the directory name. The directory name is required to be the same as the application's package name, so this isn't appropriate for situations where multiple instances of an application can be hosted at separate URLs. The application must make a wsgi app available as pkgname.app; typically a Flask app for my use case, but there's no reason it shouldn't work with any WSGI callable.

By default, the app dir is ~/.local/share/faf/. A FAF_SETTINGS environment variable can be used to provide a settings filename. Faf expects to run in a virtualenv - it runs pip without sudo, so if sys.prefix is /usr or /usr/local, it won't work.

There's a minimal web UI that lists the apps and allows you to install them if not already installed. There's no authn/authz, the access pcontrol is write access to the app directory.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.