This is a no-bullshit file hosting and URL shortening service https://gang.moe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kiru 0c1858732a kiru not senpai 5 days ago
migrations first commit 5 days ago
nsfw_model first commit 5 days ago
.gitignore first commit 5 days ago
LICENSE remove uswgi plugins builder 5 days ago
README.rst retarded readme 5 days ago
cleanup.py first commit 5 days ago
fhost.py kiru not senpai 5 days ago
nginx.conf add service config 5 days ago
nsfw_detect.py first commit 5 days ago
pomf.service add service config 5 days ago
requirements.txt first commit 5 days ago

README.rst

The Pomf
================

This is a no-bullshit file hosting and URL shortening service that also runs
`gang.moe <https://gang.moe>`_. Use with uWSGI.

If you are running nginx, you should use the ``X-Accel-Redirect`` header.
To make it work, include this in your nginx config’s ``server`` block::

location /up {
internal;
}

where ``/up`` is whatever you’ve configured as ``FHOST_STORAGE_PATH``
in ``fhost.py``.

For all other servers, set ``FHOST_USE_X_ACCEL_REDIRECT`` to ``False`` and
``USE_X_SENDFILE`` to ``True``, assuming your server supports this.
Otherwise, Flask will serve the file with chunked encoding, which sucks and
should be avoided at all costs.

To make files expire, simply create a cronjob that runs ``cleanup.py`` every
now and then.

Before running the service for the first time, run ``./fhost.py db upgrade``.


NSFW Detection
--------------

The Pomf supports classification of NSFW content via Yahoo’s open_nsfw Caffe
neural network model. This works for images and video files and requires
the following:

* Caffe Python module (built for Python 3)
* ``ffmpegthumbnailer`` executable in ``$PATH``


FAQ
---

Q:
Will you ever add a web interface with HTML forms?
A:
No. This would without a doubt make it very popular and quickly exceed
my hosting budget unless I started crippling it.

Q:
What about file management? Will I be able to register an account at some
point?
A:
No.

Q:
Why are you storing IP addresses with each uploaded file?
A:
This is done to make dealing with legal claims and accidental uploads
easier, e.g. when a user requests removal of all text files uploaded from
a certain address within a given time frame (it happens).

Q:
Do you accept donations?
A:
Only if you insist. I’ve spent very little time and effort on this service
and I don’t feel like I should be taking money for it.