Skip to content

grouprise/grouprise

Repository files navigation

grouprise

grouprise is a platform destined to encourage and enable social action and solidarity in the context of your city. Bildet Banden!

Quick Setup

For administrators

You may want to install the latest release or a snapshot build as deb packages.

For developers

grouprise has become an application with a lot of integrations into other services like mail and matrix servers and depends on other services like task queues in order to work properly.

If you are just starting out, we recommend to use docker-compose to jump-start your development environment.

Once you’ve got to know the intricacies and details of grouprise you might feel comfortable to run grouprise with more low-level tooling, but feel free to point out shortcomings in our docker-compose setup, so we can fix them.

Development with docker-compose

If you’re running Linux or BSD, your favorite distribution will most likely have a package for docker-compose. In case it doesn’t or if you use a different operating system like Windows or macOS please refer to the docker-compose install guide to get it up and running.

First create a copy of the default configuration. This only needs to be done once.

cp grouprise-dev.conf.d/000-common.yaml grouprise.conf.d/

After that you should be able to start a development environment by executing the following command:

make dev

Bootstrapping the environment will take quite some time on your first start, but eventually you’ll see Running in the output and the output itself becomes more colorful once the individual services are started.

A short while after that you can visit http://localhost:8008 in your browser of choice.

Things are not working? Come join us in our grouprise-dev chatroom!

Please note: If you want to make changes to the grouprise configuration you can create a new file in grouprise.conf.d like grouprise.conf.d/100-local.yaml. Be advised that any settings that involve file paths like data_path are evaluated within the docker-compose setup. /home/you/grouprise or any other local path you might configure won’t work out of the box. You can make them work by learning about docker-compose volumes.

Development with low-level tooling

  1. You will need virtualenv, node, python3, flake8, pip and make to get started. If you have all of those, you may proceed :). Otherwise, see Low-level tooling dependencies below.
  2. Run make assets if you plan on working on the frontend
  3. Run make app_run and wait until you see something like Starting development server at http://127.0.0.1:8000/
  4. Visit http://127.0.0.1:8000/

Local Settings

Your local Django settings will be located in grouprise.yaml. Run make app_local_settings to create a default configuration.

PS: Don’t run make app_local_settings if you’re using docker-compose!

Database Setup

The preconfigured database is a local sqlite file. For production deployment you should use a database server.

PostgreSQL

The following statement creates a suitable database including proper collation settings:

CREATE USER grouprise WITH PASSWORD 'put random noise';
CREATE DATABASE grouprise WITH ENCODING 'UTF8' LC_COLLATE='de_DE.UTF8' LC_CTYPE='de_DE.UTF8' TEMPLATE=template0 OWNER grouprise;

The command above requires the locale de_DE.UTF8 in the system of the database server.

Production deployment

We recommend to use the provided deb package. It contains an nginx and UWSGI configuration.

See also deb.md.

Contributing

The source code of grouprise itself is released under the AGPL version 3 or later, which is included in the LICENSE file.

See CONTRIBUTING.md

Low-level tooling dependencies

Depending on your distribution (we assume you’ll be using something like Linux here) the build dependencies of this project will be available via your package manager.

Debian

apt install make nodejs npm python3 virtualenv python3-flake8 python3-pip python3-sphinx python3-recommonmark python3-xapian

Arch Linux

pacman -Sy make nodejs npm python python-virtualenv flake8 python-pip python-sphinx python-recommonmark python-xapian