diff --git a/0x0.service b/0x0.service new file mode 100644 index 0000000..f67780d --- /dev/null +++ b/0x0.service @@ -0,0 +1,14 @@ +[Unit] +Description=The null pointer +Documentation=https://0x0.st + +[Service] +Type=simple +WorkingDirectory=/usr/local/0x0 +ExecStart=/usr/bin/uwsgi --ini app.ini +Restart=on-failure +User=nullptr +Group=nullptr + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/app.ini b/app.ini new file mode 100644 index 0000000..905a914 --- /dev/null +++ b/app.ini @@ -0,0 +1,13 @@ +[uwsgi] +uid = nullptr +master = true +processes = 10 +socket = socket +chmod-socket = 664 +vacuum = true +file = fhost.py +plugins = python +chdir = /path/to/0x0 +callable = app +[nullptr] +timeshift = 0 diff --git a/templates/index.html b/templates/index.html index a2add39..e4777ee 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,69 +1,46 @@ -
-THE NULL POINTER
-================
-{% set fhost_url = url_for("fhost", _external=True).rstrip("/") %}
-HTTP POST files here:
-    curl -F'file=@yourfile.png' {{ fhost_url }}
-You can also POST remote URLs:
-    curl -F'url=http://example.com/image.jpg' {{ fhost_url }}
-If you don't want the resulting URL to be easy to guess:
-    curl -F'file=@yourfile.png' -Fsecret= {{ fhost_url }}
-    curl -F'url=http://example.com/image.jpg' -Fsecret= {{ fhost_url }}
-Or you can shorten URLs:
-    curl -F'shorten=http://example.com/some/long/url' {{ fhost_url }}
-
-It is possible to append your own file name to the URL:
-    {{ fhost_url }}/aaa.jpg/image.jpeg
-
-File URLs are valid for at least 30 days and up to a year (see below).
-Shortened URLs do not expire.
-
-Files can be set to expire sooner by adding an "expires" parameter (in hours)
-    curl -F'file=@yourfile.png' -Fexpires=24 {{ fhost_url }}
-OR by setting "expires" to a timestamp in epoch milliseconds
-    curl -F'file=@yourfile.png' -Fexpires=1681996320000 {{ fhost_url }}
-
-Expired files won't be removed immediately, but will be removed as part of
-the next purge.
-
-Whenever a file that does not already exist or has expired is uploaded,
-the HTTP response header includes an X-Token field. You can use this
-to perform management operations on the file.
-
-To delete the file immediately:
-    curl -Ftoken=token_here -Fdelete= {{ fhost_url }}/abc.txt
-To change the expiration date (see above):
-    curl -Ftoken=token_here -Fexpires=3 {{ fhost_url }}/abc.txt
-
-{% set max_size = config["MAX_CONTENT_LENGTH"]|filesizeformat(True) %}
-Maximum file size: {{ max_size }}
-Not allowed: {{ config["FHOST_MIME_BLACKLIST"]|join(", ") }}
-
-
-FILE RETENTION PERIOD
----------------------
-
-retention = min_age + (-max_age + min_age) * pow((file_size / max_size - 1), 3)
-
-   days
- {{'{: 6}'.format(config.get("FHOST_MAX_EXPIRATION", 31536000000)//86400000)}} |  \
-        |   \
-        |    \
-        |     \
-        |      \
-        |       \
-        |        ..
-        |          \
- {{'{: 6.1f}'.format((config.get("FHOST_MIN_EXPIRATION", 2592000000)/2 + config.get("FHOST_MAX_EXPIRATION", 31536000000)/2)/86400000)}} | ----------..-------------------------------------------
-        |             ..
-        |               \
-        |                ..
-        |                  ...
-        |                     ..
-        |                       ...
-        |                          ....
-        |                              ......
- {{'{: 6}'.format(config.get("FHOST_MIN_EXPIRATION", 2592000000)//86400000)}} |                                    ....................
-          0{{ ((config["MAX_CONTENT_LENGTH"]/2)|filesizeformat(True)).split(" ")[0].rjust(27) }}{{ max_size.split(" ")[0].rjust(27) }}
-           {{ max_size.split(" ")[1].rjust(54) }}
-
+ + + + + media.chaotic.ninja + + +

+ + + + + +
+
+	     __  _             __           _ _ 
+	    / /_| | _____   __/ / __  _   _| | |
+	   / / _` |/ _ \ \ / / / '_ \| | | | | |
+	  / / (_| |  __/\ V / /| | | | |_| | | |
+	 /_/ \__,_|\___| \_/_/ |_| |_|\__,_|_|_|
+	  
+
+

The Chaotic Pointer

+
+
+

+ {% set fhost_url = url_for("fhost", _external=True).rstrip("/") %} + {% set max_size = config["MAX_CONTENT_LENGTH"]|filesizeformat(True) %} +
+

+ + +
+ Maximum file size: {{ max_size }}
+ Not allowed: {{ config["FHOST_MIME_BLACKLIST"] }}
+ Uploaded files expire after 15 days, no exceptions. +
+
+ + +
+

+
+
+ +