docs: add repository docs
This commit is contained in:
parent
cf7673c51c
commit
bcfab0fbad
3 changed files with 146 additions and 0 deletions
12
ARCHITECTURE.md
Normal file
12
ARCHITECTURE.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# Architecture
|
||||
|
||||
This program’s design resembles a Resource-Method-Representation architecture pattern. This is due to the design choice of making it API-oriented, instead of
|
||||
domain-oriented. Therefore
|
||||
|
||||
Router
|
||||
|
||||
Controller
|
||||
|
||||
Model
|
||||
|
||||
Backend
|
||||
24
CONTRIBUTING.md
Normal file
24
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Contribution Guidelines
|
||||
|
||||
TODO
|
||||
|
||||
## Prerequisites
|
||||
|
||||
You need the following tools to be installed:
|
||||
|
||||
|
||||
* Python (> ver. 3.7)
|
||||
|
||||
|
||||
* Python *pip* module
|
||||
|
||||
```shell
|
||||
$ git clone git@bitbucket.org:victorykit/httpaste.git
|
||||
$ cd httpaste
|
||||
$ python3 -m pipenv install -d
|
||||
$ python3 -m pipenv run tox -e test
|
||||
$ python3 -m pipenv run tox -e build
|
||||
$ python3 -m pipenv run tox -e docs
|
||||
$ python3 -m pipenv run tox -e lint
|
||||
$ python3 -m pipenv run tox -e format
|
||||
```
|
||||
110
README.md
Normal file
110
README.md
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
# httpaste - versatile HTTP pastebin
|
||||
|
||||

|
||||
|
||||
httpaste is a pastebin application for easily pasting and retrieving data over
|
||||
HTTP from shell environments and web browsers. It is inspired by [sprunge.us](http://sprunge.us)
|
||||
and [ix.io](http://ix.io/), but focuses on extendability, advanced security, with little to
|
||||
no trade-off to simplicity. It can be hosted through WSGI, CGI, Fast CGI, or
|
||||
as a standalone evaluation server. It offers multiple storage backends, such as
|
||||
a filesystem backend, SQLite backend, MySQL backend, or MongoDB backend.
|
||||
|
||||
All pastes are being encrypted on the fly and can only be retrieved by an
|
||||
authorized user, either through knowing the paste id of a public paste, or
|
||||
having authentication credentials, as well as the paste id of a private paste.
|
||||
This makes httpaste ideal as a pastebin for sensitive environments such as the
|
||||
Tor network. Authentication credentials are created on-the-fly and don’t require a sign-up process.
|
||||
|
||||
httpaste supports output formatting for syntax highlighting (powered by
|
||||
[pygments](https://pygments.org/)), as well as MIME type output manipulation, and input encoding.
|
||||
Therefore httpaste can server as an anonymous object storage for small data.
|
||||
|
||||
Minute-based and ‘burn-after-read’ paste expiration are supported.
|
||||
|
||||
httpaste focuses on security through cryptography, making it a computationally intensive application.
|
||||
|
||||
# Get Started
|
||||
|
||||
## Install
|
||||
|
||||
```shell
|
||||
$ python3 -m pip install httpaste-victorykit
|
||||
$ httpaste --help
|
||||
```
|
||||
|
||||
## Create Configuration
|
||||
|
||||
```shell
|
||||
$ httpaste default-config --dump myconfig.ini
|
||||
```
|
||||
|
||||
**NOTE**: The default configuration creates an in-memory SQLite backend, which is not
|
||||
suitable for WWW deployments. Visit backend, for more
|
||||
information on configuring the backend.
|
||||
|
||||
## Run a Local Evaluation Server
|
||||
|
||||
```shell
|
||||
$ httpaste standalone --config myconfig.ini --port 8080
|
||||
```
|
||||
|
||||
## Publish a Private Paste
|
||||
|
||||
```shell
|
||||
$ echo 'My first private paste' | curl -F 'data=<-' -u myusername:mypassword http://localhost:8080/paste/private
|
||||
http://localhost:8080/paste/private/UALUA9
|
||||
```
|
||||
|
||||
**NOTE**: If the user does not exist, they will be created upon authentication.
|
||||
|
||||
## Retrieve a Private Paste
|
||||
|
||||
```shell
|
||||
$ curl -u myusername:mypassword http://localhost:8080/paste/private/UALUA9
|
||||
My first private paste
|
||||
```
|
||||
|
||||
## Publish a Public Paste
|
||||
|
||||
```shell
|
||||
$ echo 'My first public paste' | curl -F 'data=<-' http://localhost:8080/paste/public
|
||||
http://localhost:8080/paste/public/X4L39J
|
||||
```
|
||||
|
||||
## Retrieve a Public Paste
|
||||
|
||||
```shell
|
||||
$ curl http://localhost:8080/paste/public/X4L39J
|
||||
My first public paste
|
||||
```
|
||||
|
||||
### Documentation
|
||||
|
||||
The documentation can be found under [https://victorykit.bitbucket.io/httpaste/](https://victorykit.bitbucket.io/httpaste/).
|
||||
|
||||
### Licensing
|
||||
|
||||
Copyright (C) 2021 Tiara Rodney (victoryk.it)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <[https://www.gnu.org/licenses/](https://www.gnu.org/licenses/)>.
|
||||
|
||||
This program uses licensed third-party software.
|
||||
|
||||
### More Information
|
||||
|
||||
|
||||
* [Architecture](ARCHITECTURE.md)
|
||||
|
||||
|
||||
* [Contribution Guidelines](CONTRIBUTING.md)
|
||||
Loading…
Add table
Add a link
Reference in a new issue