mirror of
https://github.com/jointakahe/takahe.git
synced 2024-12-01 11:41:00 +00:00
Add a lot more docs
This commit is contained in:
parent
ae5a16e133
commit
e18f2879fc
6 changed files with 154 additions and 2 deletions
99
docs/contributing.rst
Normal file
99
docs/contributing.rst
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
Contributing
|
||||||
|
============
|
||||||
|
|
||||||
|
Takahē, as an open source project, could always do with more help, and if you
|
||||||
|
want to contribute we'd love help in the following areas:
|
||||||
|
|
||||||
|
* Backend code development (Python)
|
||||||
|
* Frontend code development (HTML, CSS and very limited JavaScript)
|
||||||
|
* Visual design & UX (for our default UI, and the project site)
|
||||||
|
* Illustration (for the app, project site, and outreach materials)
|
||||||
|
* Writing (for our development and user documentation)
|
||||||
|
|
||||||
|
If you're interested in helping out, join `our Discord server <https://discord.gg/qvQ39tAMvf>`_`
|
||||||
|
or email contact@jointakahe.org, and mention what you'd like to help with.
|
||||||
|
|
||||||
|
All contributors are expected to abide by our `Code of Conduct <https://jointakahe.org/conduct/>`_.
|
||||||
|
We have zero tolerance for bigotry or discrimination.
|
||||||
|
|
||||||
|
If you feel like someone is breaking the code of conduct, or is making you feel
|
||||||
|
unwelcome in a way not explicitly outlined in it, you can email us at
|
||||||
|
conduct@jointakahe.com.
|
||||||
|
|
||||||
|
|
||||||
|
Running Locally
|
||||||
|
---------------
|
||||||
|
|
||||||
|
If you wish to run Takahē locally, these instructions will help you do that.
|
||||||
|
It is worth noting, however, that this will only really let you test the UI
|
||||||
|
and local posting/follow functionality; to test ActivityPub itself and follow
|
||||||
|
other people, your installation **must be accessible from the internet**;
|
||||||
|
doing that securely is different enough per person that it is not covered here.
|
||||||
|
|
||||||
|
|
||||||
|
Direct installation
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Takahē requires Python 3.10 or above, so you'll need that first. Clone the repo::
|
||||||
|
|
||||||
|
git clone git@github.com:jointakahe/takahe
|
||||||
|
|
||||||
|
Then, ``cd`` into that directory and create and activate a virtual environment
|
||||||
|
(you can use other options, but this is the basic example)::
|
||||||
|
|
||||||
|
python3 -m venv .venv
|
||||||
|
. .venv/bin/activate
|
||||||
|
|
||||||
|
Then install the development requirements::
|
||||||
|
|
||||||
|
pip install -r requirements-dev.txt
|
||||||
|
|
||||||
|
and enable the git commit hooks to do auto-formatting and linting
|
||||||
|
(if you don't do this, our CI system will reject your PRs until they match)::
|
||||||
|
|
||||||
|
pre-commit install
|
||||||
|
|
||||||
|
You will need to set your system to use development settings::
|
||||||
|
|
||||||
|
export DJANGO_SETTINGS_MODULE=takahe.settings.development
|
||||||
|
|
||||||
|
You can run the web interface to see it at http://localhost:8000::
|
||||||
|
|
||||||
|
./manage.py runserver
|
||||||
|
|
||||||
|
You will need to run Stator in order to have background actions work::
|
||||||
|
|
||||||
|
./manage.py runstator
|
||||||
|
|
||||||
|
Make yourself a superuser account in order to log in:
|
||||||
|
|
||||||
|
./manage.py createsuperuser
|
||||||
|
|
||||||
|
And you can run the tests with pytest::
|
||||||
|
|
||||||
|
pytest
|
||||||
|
|
||||||
|
|
||||||
|
Docker
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
The docker build process will take care of much of the above, but you just have
|
||||||
|
to be sure that you're executing it from the project root.
|
||||||
|
|
||||||
|
First, you need to build your image::
|
||||||
|
|
||||||
|
docker compose -f docker/docker-compose.yml build
|
||||||
|
|
||||||
|
Then start the `compose` session::
|
||||||
|
|
||||||
|
docker compose -f docker/docker-compose.yml up
|
||||||
|
|
||||||
|
At this point, you will be able to see the Web UI at http://localhost:8000
|
||||||
|
|
||||||
|
Once your session is up and running, you can make yourself a superuser account::
|
||||||
|
|
||||||
|
docker compose -f docker/docker-compose.yml exec web manage.py createsuperuser
|
||||||
|
|
||||||
|
And you can run the tests inside your container::
|
||||||
|
|
||||||
|
docker compose -f docker/docker-compose.yml exec web pytest
|
51
docs/features.rst
Normal file
51
docs/features.rst
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
Features
|
||||||
|
========
|
||||||
|
|
||||||
|
Takahē is currently in development, so it does not yet have all the features
|
||||||
|
of a full ActivityPub server.
|
||||||
|
|
||||||
|
Currently, it supports:
|
||||||
|
|
||||||
|
* Web UI only (but can be installed as a PWA)
|
||||||
|
* Creating posts, with CWs/summaries and visibility
|
||||||
|
* Receiving posts, with CWs/summaries, visibility, images
|
||||||
|
* Receiving post edits and deletions
|
||||||
|
* Creating and receiving boosts
|
||||||
|
* Creating and receiving likes
|
||||||
|
* Delivering mentions to those mentioned, and notifications for incoming mentions
|
||||||
|
* Following and unfollowing
|
||||||
|
* Reciving follows and unfollows
|
||||||
|
* A home timeline, a local timeline, and a federated timeline
|
||||||
|
* Profile pages with bios, icons, and header images
|
||||||
|
* Searching for users by exact handle
|
||||||
|
* Multiple domain support
|
||||||
|
* Multiple identity (per user account support)
|
||||||
|
* Signup flow
|
||||||
|
* Password reset flow
|
||||||
|
|
||||||
|
Features planned for releases up to 1.0:
|
||||||
|
|
||||||
|
* Handling replies and reply threading
|
||||||
|
* Adding images to posts, with descriptions
|
||||||
|
* Editing and deleting posts
|
||||||
|
* A mode where followers must be approved
|
||||||
|
* Emoji fetching and display
|
||||||
|
* Emoji creation at server level
|
||||||
|
* Searching for hashtags
|
||||||
|
* Server announcements system
|
||||||
|
* Moderation flagging system and queue
|
||||||
|
* Server defederation (blocking)
|
||||||
|
* IP and email domain banning
|
||||||
|
* Mastodon-compatible client API for use with apps
|
||||||
|
|
||||||
|
Features that may make it into 1.0, or might be further out:
|
||||||
|
|
||||||
|
* Creating polls on posts, and handling received polls
|
||||||
|
* Filter system for Home timeline
|
||||||
|
* Hashtag trending system with moderation
|
||||||
|
* Relay support
|
||||||
|
|
||||||
|
Features on the long-term roadmap:
|
||||||
|
|
||||||
|
* "Since you were gone" optional algorithmic timeline
|
||||||
|
* Seamless transfer from a Mastodon installation
|
|
@ -15,5 +15,7 @@ in alpha. For more information about Takahē, see
|
||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
installation
|
installation
|
||||||
|
features
|
||||||
domains
|
domains
|
||||||
stator
|
stator
|
||||||
|
contributing
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
pre-commit~=2.20.0
|
|
||||||
-r requirements.txt
|
-r requirements.txt
|
||||||
|
pre-commit~=2.20.0
|
||||||
black==22.10.0
|
black==22.10.0
|
||||||
flake8==5.0.4
|
flake8==5.0.4
|
||||||
isort==5.10.1
|
isort==5.10.1
|
||||||
mock~=4.0.3
|
mock~=4.0.3
|
||||||
pre-commit~=2.20.0
|
|
||||||
pytest-django~=4.5.2
|
pytest-django~=4.5.2
|
||||||
pytest-httpx~=0.21
|
pytest-httpx~=0.21
|
||||||
|
|
BIN
static/img/icon-32.png
Normal file
BIN
static/img/icon-32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
|
@ -9,6 +9,7 @@
|
||||||
<link rel="stylesheet" href="{% static "fonts/raleway/raleway.css" %}" type="text/css" />
|
<link rel="stylesheet" href="{% static "fonts/raleway/raleway.css" %}" type="text/css" />
|
||||||
<link rel="stylesheet" href="{% static "fonts/font_awesome/all.min.css" %}" type="text/css" />
|
<link rel="stylesheet" href="{% static "fonts/font_awesome/all.min.css" %}" type="text/css" />
|
||||||
<link rel="manifest" href="/manifest.json" />
|
<link rel="manifest" href="/manifest.json" />
|
||||||
|
<link rel="shortcut icon" href="{{ config.site_icon }}">
|
||||||
<script src="{% static "js/hyperscript.min.js" %}"></script>
|
<script src="{% static "js/hyperscript.min.js" %}"></script>
|
||||||
<script src="{% static "js/htmx.min.js" %}"></script>
|
<script src="{% static "js/htmx.min.js" %}"></script>
|
||||||
<style>
|
<style>
|
||||||
|
|
Loading…
Reference in a new issue