38 lines
1.9 KiB
Markdown
38 lines
1.9 KiB
Markdown
# GNU social Developer's handbook
|
|
|
|
The book in your hands was written to teach you
|
|
the art of contributing to the GNU social codebase.
|
|
|
|
It starts by introducing the Modules system and architecture,
|
|
then the plugin development process and finally the exciting internals
|
|
of GNU social for those looking forward to making the most advanced contributions.
|
|
|
|
# What you need to dive in
|
|
|
|
- A working [Docker](https://www.docker.com/) and [`docker-compose`](https://docs.docker.com/compose/) setup
|
|
|
|
This is the recommended setup, for simplicity and integration with the provided [tools](./tools.md).
|
|
|
|
OR
|
|
|
|
- At least a webserver such as [nginx](https://nginx.org/) and a DBMS such as [postgresql](https://www.postgresql.org/).
|
|
- Depending on what you want to do, you may want to setup a queues (and caching) system such as [redis](https://redis.io/).
|
|
|
|
To learn how to set all of that up, you may refer to the [System Administrator's handbook](/administrator).
|
|
|
|
Understand that this book assumes prior programming knowledge, if that doesn't sound like you, refer to our [study
|
|
resources](https://www.gnusocial.rocks/soc/study_resources.html) to get started.
|
|
|
|
# The other documentations are equally relevant to a developer
|
|
|
|
The [User](/user) one is intended to illustrate the various common use cases, possibilities regarding customization and introduce the existing functionalities.
|
|
|
|
The [Administrator](/administrator) one explains the step by step of how to install and maintain a GNU social instance, be it as node of The Free Network or as an intranet social network in a company setting.
|
|
|
|
The [Designer](/designer) one is an in-depth overview of the design motifs, and the design language used. Useful for creating new plugins and help as a basis for new themes.
|
|
|
|
# Tests
|
|
|
|
When what you're looking for (usage instructions of anything), refer to the `tests` directory.
|
|
The unit tests are properly commented and are very extensive, they try to cover every use scenario.
|