30b7b24e68
- changed all service names to not include "forget", let docker-compose generate container names - gave the image a single name - listen on 127.0.0.1 by default, provide documented override file that reverses it - docs: on that note: don't tell folks to edit docker-compose.yml directly - docs: explicitly say "run docker-compose build" because docker-compose is janky and it can be surprising that downloading a new version of the code and running `docker-compose up` doesn't do anything |
||
---|---|---|
.github | ||
assets | ||
components | ||
data | ||
libforget | ||
migrations | ||
routes | ||
static | ||
templates | ||
test | ||
tools | ||
.codecov.yml | ||
.coveragerc | ||
.dockerignore | ||
.env | ||
.eslintrc.yml | ||
.gitattributes | ||
.gitignore | ||
CHANGELOG.markdown | ||
Dockerfile | ||
LICENSE | ||
MANIFEST.in | ||
Pipfile | ||
Pipfile.lock | ||
Procfile | ||
Procfile.dev | ||
README.markdown | ||
app.py | ||
config.docker.py | ||
config.example.py | ||
docker-compose.override.example.yml | ||
docker-compose.yml | ||
dodo.py | ||
forget.example.service | ||
forget.py | ||
model.py | ||
package-lock.json | ||
package.json | ||
requirements-dev.txt | ||
requirements.txt | ||
rollup.config.js | ||
setup.cfg | ||
setup.py | ||
tasks.py | ||
version.py | ||
versioneer.py |
README.markdown
Forget is a post deleting service for Twitter, Mastodon, and Misskey.
You can run a copy of it on your server, or use the server run by the maintainer at https://forget.codl.fr/
Features
- Delete your posts when they cross an age threshold.
- Or keep your post count in check, deleting old posts when you go over.
- Preserve old posts that matter by giving them a favourite or a reaction.
- Set it and forget it. Forget works continuously in the background.
Non-features
Forget is not a one-time purging tool. It is designed to prune your account continuously, not quickly. If you need a lot of posts gone fast, you may want to look for another more-suited tool.
Running your own
Requirements
- Postgresql
- Redis
- Python 3.6+
- Node.js 10+
Set up venv
Setting up a venv will isolate Forget from your system's libraries and allow you to install dependencies locally as a normal user. It's not necessary but it is recommended!
$ python -m venv venv
$ source venv/bin/activate
If you're using zsh
or fish
as a shell, substitute venv/bin/activate
with
venv/bin/activate.zsh
or venv/bin/activate.fish
, respectively.
You will need to "activate" the venv in every new terminal before you can use pip or any python tools included in dependencies (honcho, flask...)
Download and install dependencies
$ pip install -r requirements.txt
$ npm install
Wow!! Exciting
Create and complete config file
Gotta set up those, paths, and stuff.
$ cp config.example.py config.py
$ $EDITOR config.py
Set up database schema
If you haven't started postgresql yet now would be a great time to do that.
$ createdb forget # if you havent created the DB yet
$ env FLASK_APP=forget.py flask db upgrade
Build static assets
Gonna do it...!
$ doit
Done did it.
Running
The included Procfile
will run the app server and the background worker.
honcho
, a Procfile
runner, is included as a dependency:
$ honcho start
The application server will listen on http://127.0.0.1:42157
.
You'll want to use your favourite web server to proxy traffic to it.
Development
For development, you may want to use Procfile.dev
, which starts flask in
debug mode and rebuilds the static assets automatically when they change
$ honcho -f Procfile.dev start
Or you could just look at Procfile.dev
and run those things manually. It's up
to you.
You can run the (currently very incomplete) test suite by running pytest
.
You'll need redis installed on your development machine, a temporary redis
server will be started and shut down automatically by the test suite.
Docker
This project is also able to be deployed through Docker.
- Copy
config.docker.py
toconfig.py
and add additional configurations to your liking. - By default, the webapp container will be listening on
127.0.0.1:42157
, which you can point a reverse proxy at.- If your reverse proxy is in another docker network then you'll need a
docker-compose.override.yml
file to attach thewww
service to the right network and not publish any ports. An example override file is provided. The web app will be listening onhttp://forget-www-1:42157
.
- If your reverse proxy is in another docker network then you'll need a
- By default, the
docker-compose.yml
creates relative mounts./redis
,./postgres
, and./celery
relative to thedocker-compose.yml
location. An exampledocker-compose.override.yml
file is provided that shows how to change this. - Run
docker-compose build
to build the image. - Run
docker-compose up
to start ordocker-compose up -d
to start in the background, and usedocker-compose down
to stop.
Contact
If you're having trouble with Forget, or if you're not having trouble but you just want to tell me you like it, you can drop me a note at @codl@chitter.xyz or codl@codl.fr.
Greetz
Thank you bea, for making ephemeral, inspiring me to make limiter, then this, in an attempt to bring ephemeral with me everywhere. ☕
Thank you to the kind folks who have emailed me to tell me Forget has made their time on social media less stressful. 🌻