united

5 min read Original article ↗

ac3570bc68

CI / scan_ruby (push) Failing after 5m58s

CI / scan_js (push) Successful in 6m6s

CI / lint (push) Successful in 6m9s

Build latest container / Build image (push) Successful in 1h2m15s

Update pull_request_template.yml

2024-09-02 03:36:39 +00:00 .devcontainer initial stuff 2024-04-24 10:06:46 -05:00 .forgejo/workflows comment out tests 2024-07-03 08:59:34 -05:00 .vscode code coverage badge 2024-06-26 11:47:11 -05:00 app fix bug 2024-07-16 02:24:37 -05:00 bin secrets.yml! 2024-06-23 02:00:56 -05:00 config move middleware 2024-07-15 11:37:03 -05:00 coverage use <output> for flashes 2024-07-03 12:38:49 -05:00 db Review memberships! 2024-07-07 07:59:54 -05:00 lib Transparently handle OIDC private key 2024-05-30 10:57:10 -05:00 log initial stuff 2024-04-24 10:06:46 -05:00 openapi API, API keys, openapi docs via rswag, and share join link button 2024-04-27 22:53:27 -05:00 pictures Passkeys (#31) 2024-07-03 05:00:48 +00:00 public initial stuff 2024-04-24 10:06:46 -05:00 spec update factory 2024-07-06 12:21:22 -05:00 storage initial stuff 2024-04-24 10:06:46 -05:00 tmp initial stuff 2024-04-24 10:06:46 -05:00 vendor export strategies and openslides 2024-07-04 16:41:07 -05:00 .dockerignore update docker 2024-06-13 07:20:05 -05:00 .domains .domains 2024-06-17 22:38:57 -05:00 .gitattributes initial stuff 2024-04-24 10:06:46 -05:00 .gitignore CI 2024-07-03 08:16:21 -05:00 .rspec API, API keys, openapi docs via rswag, and share join link button 2024-04-27 22:53:27 -05:00 .rubocop.yml API, API keys, openapi docs via rswag, and share join link button 2024-04-27 22:53:27 -05:00 .ruby-version update docker 2024-06-13 07:20:05 -05:00 .standard.yml API, API keys, openapi docs via rswag, and share join link button 2024-04-27 22:53:27 -05:00 app.json The Great Renaming 2024-06-27 08:56:20 -05:00 CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2024-07-08 09:24:49 +00:00 config.ru initial stuff 2024-04-24 10:06:46 -05:00 Containerfile set docker.io is containerfile 2024-06-21 23:56:10 -05:00 docker-compose.dev.yml Update install script to use container 2024-06-22 19:03:46 -05:00 docker-compose.yml Update install script to use container 2024-06-22 19:03:46 -05:00 dump.rdb update browser versions 2024-04-29 13:54:02 -05:00 example.env update example env 2024-06-16 11:21:37 -05:00 fly.toml Containerfile 2024-06-14 10:17:09 -05:00 Gemfile Demo mode! 2024-07-06 09:25:49 -05:00 Gemfile.lock Demo mode! 2024-07-06 09:25:49 -05:00 index.html The Great Renaming 2024-06-27 08:56:20 -05:00 LICENSE.md change copyright holder to the software freedom conservancy 2024-06-07 02:51:19 +00:00 package-lock.json Passkeys (#31) 2024-07-03 05:00:48 +00:00 Procfile update iaas manifests 2024-06-22 23:16:00 -05:00 Procfile.dev OIDC 2024-05-29 20:05:12 -05:00 pull_request_template.yml Update pull_request_template.yml 2024-09-02 03:36:39 +00:00 railway.json Containerfile 2024-06-14 10:17:09 -05:00 Rakefile API, API keys, openapi docs via rswag, and share join link button 2024-04-27 22:53:27 -05:00 README.md Update README.md 2024-07-27 04:13:22 +00:00 render.sh render 2024-06-11 09:50:50 -05:00 render.yaml update iaas manifests 2024-06-22 23:16:00 -05:00

United! A free and open system for collective organizations

Release Last Commit Copyleft - AGPL-v3.0-or-later Contributions Encouraged SODAP compliant Code Coverage Maintainability wakatime

Produced By Human, Not by AI

United is free and open SODAP-compliant membership software for collective organizations, allowing robust tracking of membership, expirations, email broadcast tools, providing single-sign-on for your members, and more.

Open demo! ↗

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Screenshot of the United dashboard in light modeScreenshot of the United dashboard in dark modeScreenshot of the United member my requiring a renewal in light modeScreenshot of the United member my in dark modeScreenshot of the United broadcasts dashboard in light mode

Demo

A fully functional demo is available at demo.united.obl.ong!

Open demo! ↗

Installation

Cloud (IaaS)

Railway

I recommend that people use Railway to deploy United, as it has a free tier and an extremely easy setup process.

Deploy on Railway

Here's a video of me spinning up a United instance in less than 10 minutes on Railway:

Others

If you don't want to use Railway, here are some other options for cloud deployments:

Deploy to Heroku Deploy to Render Launch on Fly.io

Computer

Automated

You can use our simple automated script to install United onto any ol' computer or server running Linux with Docker. I highly recommend this option as it allows for minimizing recurring costs and full control.

Just paste the following in the terminal and answer a few short questions!

bash <(curl -s https://codeberg.org/reesericci/united/raw/branch/main/bin/install)

To install Linux on a computer, please visit the Fedora Server install guide.


Details

  • SQLite Database by default (No external DB required)
    • Optional PostgreSQL support available by setting the DATABASE_URL environment variable
  • Ruby 3.3.2
  • Rails edge (main branch)
  • Site configuration handled through initial wizard
  • We relentlessly aim for:
    • Simple deployment
    • Low-maintainance stability

Versioning

We use Brett Uglow's SemVer for end-user software applications, to version this application:

Given the importance of the installation-requirements of an application to installer-users, I propose that semver be used to version end-user applications using the installation-requirements as the public API with installer-users as the consumers of this API.

In practice, increment the:

    MAJOR version when you make incompatible API changes (e.g. installer-users have to modify their infrastructure (phone/tablet/PC/web-server/firewall config/etc) in some way),
    MINOR version when you add functionality in a backwards-compatible manner (e.g. passing additional data to an already-provisioned API or adding any end-user functionality that does not affect the installation-requirements), and
    PATCH version when you make backwards-compatible bug fixes (e.g. fixing any end-user bug that does not affect the installation requirements).

Copyright (C) 2024 Software Freedom Conservancy and United contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.


This site is a member of the Hard Fork webring

Previous Site Random! Next Site