-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit aac29a9
Showing
150 changed files
with
8,499 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 62040a5f15cc6e23123b749ada949a8e | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#GitHub Pages | ||
|
||
Last update of sphinx html documentation from [e95ee35](https://github.com/PufferBlow/pufferblow/tree/e95ee3581f55259f6e48ec4140b36fb9aab36964) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
|
||
=============== | ||
Get started | ||
=============== | ||
|
||
To get started on hosting your own `pufferblow <https://github.com/PufferBlow/pufferblow>`__ server, you will need to first setup a VPS (or you can try and host it on your local network using a spare laptop or even on your current machine), than you will need to setup `supabase <https://supabase.com>`__. | ||
|
||
Setup a Linux VPS | ||
================= | ||
|
||
Numerous affordable VPS services are available, offering reliable Linux VPS solutions. Among the options that we recommend are: | ||
|
||
* `Oracle's Free tier <https://www.oracle.com/cloud/free>`_ | ||
* `Contabo <https://contabo.com/en/>`_ | ||
|
||
Setup supabase | ||
============== | ||
|
||
Supabase is a Firebase alternative that is open-source, which is why we are using. | ||
To set it up, you can use the **free plan** available at `supabase.com <https://supabase.com>`__, or you can choose a **paid plan** option. | ||
We are going to be using the **free plan** so just head over to `supabase.com/pricing <https://supabase.com/pricing>`__ and choose a plan and create an account: | ||
|
||
.. image:: ./_static/images/supabase-pricing.png | ||
:class: image-style | ||
:alt: Supabase pricing plans | ||
|
||
|
||
after that, you can then create a **new project**, give it a **name** and a **super strong database password**, select a **region**: | ||
|
||
.. image:: ./_static/images/supabase-new-project.png | ||
:class: image-style | ||
:alt: Supabase create a new project | ||
|
||
.. warning:: | ||
|
||
Make sure to save your **super strong database password** safe because you are going to need it in order to connect to the database. | ||
|
||
After creating the project, it may take up to 5min in order to setup everything, but after the setup process, head over to **the project settings** page then select **Database**, and you will see your **database's connection info**: | ||
|
||
.. image:: ./_static/images/supabase-project-database-connection-info.png | ||
:class: image-style | ||
:alt: Supabase project's database connection info | ||
|
||
make sure to save them in a text file because we're going to need them when setting up `pufferblow <https://github.com/PufferBlow/pufferblow>`__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
|
||
Welcome to pufferblow-api docs's documentation! | ||
=============================================== | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
:caption: Contents: | ||
|
||
introduction | ||
get_started |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
============================== | ||
Introduction to pufferblow | ||
============================== | ||
|
||
Introduction | ||
============ | ||
|
||
The `pufferblow <https://github.com/PufferBlow/pufferblow>`__ is the official open-source server for `PufferBlow <https://github.com/PufferBlow>`__. Using it you can host your own server and create a community for you, your friends, and potentially others to join and spend wonderful times together. One of the key strengths of the `pufferblow <https://github.com/PufferBlow/pufferblow>`__ is its robust security measures. Being open-source and free to use, it ensures your privacy as it implements advanced encryption algorithms such as Blowfish and bcrypt for data hashing and encryption, making the `pufferblow <https://github.com/PufferBlow/pufferblow>`__ a secure choice for hosting your own server. | ||
Unlike many other chat services that offer little control to the server owner, such as Discord and Guilded, `PufferBlow <https://github.com/PufferBlow/pufferblow>`__ stands apart. With `PufferBlow <https://github.com/PufferBlow/pufferblow>`__, you have the ability to host your own server using `pufferblow <https://github.com/PufferBlow/pufferblow>`__ and customize it according to your preferences. | ||
|
||
The ideology of pufferblow | ||
============================== | ||
|
||
This service enables users to host their own servers or instances while maintaining a consistent user experience across all these servers. Furthermore, users only need to create a single account on one server, which will be synchronized across all instances (aka fediverse network). | ||
|
||
.. note:: | ||
|
||
As of version **v0.0.1-beta**, the `pufferblow <https://github.com/PufferBlow/pufferblow>`__ does not yet support the Fediverse. However, this feature is planned for future releases. The primary reason for creating PufferBlow was to develop a Fediverse-compatible Discord-like chat service, which aligns with the ethos of the Fediverse itself. | ||
|
||
Prerequisites | ||
============= | ||
|
||
To start hosting your server, you will first need a couple things: | ||
|
||
* A **Linux VPS**, it can be any Linux distro that you want as long as it meets the following requirements: | ||
|
||
* At least 2 CPU cores. | ||
|
||
* 1 to 2 GB of RAM. | ||
|
||
* High network bandwidth. | ||
|
||
.. note:: | ||
|
||
you won't need a lot of storage to host `pufferblow <https://github.com/PufferBlow/pufferblow>`__, but if you are going to also host your own instance of `supabase <https://supabase.com/>`__ than it is recommended to have at least **50GB of storage or higher**. | ||
|
||
* `supabase <https://supabase.com/>`__ is an open-source alternative to Firebase. You have the option to either self-host it or use their free plan available at https://supabase.com. However, it's recommended not to self-host unless your server has a large number of members. If your server is expected to grow significantly, then self-hosting becomes the optimal solution. In such cases, you may also need to consider upgrading your VPS hardware to accommodate the increased load. | ||
|
||
Dependencies | ||
============ | ||
|
||
These are mostly python libs and dependencies that are used by pufferblow: | ||
|
||
.. _FastAPI: https://fastapi.tiangolo.com/ | ||
.. _Typer: https://typer.tiangolo.com/ | ||
.. _Rich: https://rich.readthedocs.io/en/latest/ | ||
.. _Uvicorn: https://www.uvicorn.org/ | ||
.. _PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation | ||
.. _PyCryptodome: https://www.pycryptodome.org/en/latest/ | ||
.. _bcrypt: https://pypi.org/project/bcrypt/ | ||
.. _Loguru: https://loguru.readthedocs.io/en/stable/ | ||
.. _pytz: http://pythonhosted.org/pytz/ | ||
.. _psycopg2-binary: https://www.psycopg.org/docs/ | ||
.. _pytest: https://docs.pytest.org/en/latest/ | ||
.. _SQLAlchemy: https://www.sqlalchemy.org/ | ||
.. _Websockets: https://websockets.readthedocs.io/en/stable/ | ||
.. _HTTPX: https://www.python-httpx.org/ | ||
|
||
* `FastAPI <FastAPI_>`_: FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. | ||
* `Typer <Typer_>`_: Typer is a library for building command line interface (CLI) applications, with support for argument parsing, validation, help messages, and more. | ||
* `Rich <Rich_>`_: Rich is a Python library for rendering rich text and beautiful formatting to the terminal. | ||
* `Uvicorn <Uvicorn_>`_: Uvicorn is a lightning-fast ASGI server implementation, using uvloop and httptools. | ||
* `PyYAML <PyYAML_>`_: PyYAML is a YAML parser and emitter for Python. | ||
* `PyCryptodome <PyCryptodome_>`_: PyCryptodome is a self-contained Python package of low-level cryptographic primitives. | ||
* `bcrypt <bcrypt_>`_: bcrypt is a password hashing function designed by Niels Provos and David Mazières. | ||
* `Loguru <Loguru_>`_: Loguru is a library which aims to bring enjoyable logging in Python. | ||
* `pytz <pytz_>`_: pytz brings the Olson tz database into Python. | ||
* `psycopg2-binary <psycopg2-binary_>`_: psycopg2-binary is a stand-alone package that includes the PostgreSQL binary libraries. | ||
* `pytest <pytest_>`_: pytest is a mature full-featured Python testing tool that helps you write better programs. | ||
* `SQLAlchemy <SQLAlchemy_>`_: SQLAlchemy is the Python SQL toolkit and Object-Relational Mapping (ORM) system. | ||
* `Websockets <Websockets_>`_: Websockets is a library for building WebSocket servers and clients in Python. | ||
* `HTTPX <HTTPX_>`_: HTTPX is a fully featured HTTP client for Python 3, which provides sync and async APIs, and support for both HTTP/1.1 and HTTP/2. | ||
|
||
for the documentation, we used the `sphinx <https://www.sphinx-doc.org/en/master/>`__ document generator: | ||
|
||
.. _Sphinx: https://www.sphinx-doc.org/en/master/ | ||
.. _SphinxBookTheme: https://github.com/executablebooks/sphinx-book-theme | ||
.. _SphinxAutobuild: https://pypi.org/project/sphinx-autobuild/ | ||
.. _SphinxFavicon: https://pypi.org/project/sphinx-favicon/ | ||
|
||
* `Sphinx <Sphinx_>`_: Sphinx is a tool that makes it easy to create intelligent and beautiful documentation. | ||
* `Sphinx Book Theme <SphinxBookTheme_>`_: The Sphinx Book Theme is a theme for Sphinx that is designed to look good for books and documentation. | ||
* `Sphinx Autobuild <SphinxAutobuild_>`_: Sphinx Autobuild is a tool that automatically rebuilds your Sphinx documentation whenever changes are detected. | ||
* `Sphinx Favicon <SphinxFavicon_>`_: Sphinx Favicon is an extension for Sphinx that adds support for favicons in your documentation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
pufferblow | ||
========== | ||
|
||
.. toctree:: | ||
:maxdepth: 4 | ||
|
Oops, something went wrong.