Add a lot more docs
This commit is contained in:
parent
ae5a16e133
commit
e18f2879fc
|
@ -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
|
|
@ -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:
|
||||
|
||||
installation
|
||||
features
|
||||
domains
|
||||
stator
|
||||
contributing
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
pre-commit~=2.20.0
|
||||
-r requirements.txt
|
||||
pre-commit~=2.20.0
|
||||
black==22.10.0
|
||||
flake8==5.0.4
|
||||
isort==5.10.1
|
||||
mock~=4.0.3
|
||||
pre-commit~=2.20.0
|
||||
pytest-django~=4.5.2
|
||||
pytest-httpx~=0.21
|
||||
|
|
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/font_awesome/all.min.css" %}" type="text/css" />
|
||||
<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/htmx.min.js" %}"></script>
|
||||
<style>
|
||||
|
|
Loading…
Reference in New Issue