MemberMatters

An open source membership, access and payments portal for makerspaces and community groups.

View the Project on GitHub membermatters/MemberMatters

Post Installation Steps

Once you have completed the getting started instructions, you should complete the following steps to setup and customise your instance of MemberMatters.

Important Notice

Currently, a valid sendgrid API key is required for MemberMatters to function correctly. Emails are sent on various tasks like sign ups, MemberBucks actions etc. You will receive errors if you try to use these functions without a correctly configured Sendgrid API key. They have a free tier which should be more than enough for testing, however we recommend upgrading to a paid tier before deployment.

Set up a reverse proxy

MemberMatters is designed to run behind some form of reverse proxy, or at the minimum, an SSL terminating CDN like Cloudflare (not recommended). You should not ever run MemberMatters in production without some form of HTTPS. The recommended way is with an nginx reverse proxy as explained below. Unfortunately, reverse proxy configurations are highly dependant on your specific environment, so only general guidance can be given. Please consult your favourite search engine if you have any trouble and only open a GitHub issue if you think you’ve found a bug or way to improve this documentation.

Setting up an nginx reverse proxy on Ubuntu

  1. You should first install nginx. On Ubuntu, you can install nginx with sudo apt install nginx.
  2. Configure your nginx instance to proxy traffic through to the MemberMatters docker container on port 8000.
  3. A sample configuration file is included below, but you should configure this to your needs. You should create this file at /etc/nginx/sites-available/example.com, where example.com is the name of our domain.
    server {
      server_name example.com;
    
     location / {
         proxy_set_header Host              $host;
     proxy_set_header X-Real-IP         $remote_addr;
     proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
     proxy_set_header X-Forwarded-Proto $scheme;
     proxy_set_header X-Forwarded-Host  $host;
     proxy_set_header X-Forwarded-Port  $server_port;
        
         proxy_redirect off;
         proxy_pass http://localhost:8000;
     }
     listen 80 default_server;
      listen [::]:80 default_server;
    }
    
  4. Enable your new configuration file by running this command sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/.
  5. Check the configuration that you added is valid by running this command, there should be no errors: sudo nginx -t.
  6. Restart nginx to apply your new changes with sudo systemctl restart nginx.
  7. Note that this process does not include a configuration for HTTPS. We recommend that you use the Let’s Encrypt Certbot tool as it will automatically modify your configuration to enable HTTPS and manage certificates for you. Click here and follow the instructions to install certbot on your system. Once installed, run certbot as per that link and follow the prompts to enable HTTPS for your system.
  8. Check that you can access your instance of MemberMatters via HTTPS at the URL that you configured.

Customisation

The primary way to customise MemberMatters is via the database settings. Once your instance is up and running, navigate to https://<instance_url>/admin and login with an admin account. Then click on “Config” under “Constance”. On this page you’ll see a variety of settings. You should customise these settings with your own details.

A summary of the settings is available below. Most settings have a more detailed description and an example of the format required on the settings page itself.

General

Signup

Canvas Integration

Sendgrid Integration

Contact Information

Discourse SSO Protocol

URLs

Memberbucks

Images

Group Localisation

“Stripe Integration”

Trello Integration

Space Directory

Theme Swipe Integration

Discord Integration

Home Page and Welcome Email Cards

The settings called “HOME_PAGE_CARDS” and “WELCOME_EMAIL_CARDS” control the content that is displayed on the MemberMatters home page, and the content in the welcome email each user receives when they are converted to a member. These options are configured with a JSON object specifying the content. You can add as many cards as you want, but we recommend 6 as a maximum for the homepage, and 4 for the email. You can find the icon names on this page. Absolute and relative URLs are supported.

An example with 3 cards is below:

[
  {
    "title": "HSBNE Wiki",
    "description": "Our wiki is like the rule book for HSBNE. It contains all the information about our tools, processes and other helpful tips.",
    "icon": "class",
    "url": "https://wiki.hsbne.org",
    "btn_text": "Read Wiki"
  },
  {
    "title": "Trello",
    "description": "We use Trello for task management. If you want to help out around the space check out Trello for stuff to fix and improve.",
    "icon": "view_list",
    "url": "https://trello.com/b/xxxxxxx/inbox",
    "btn_text": "Visit Trello"
  },
  {
    "title": "Report Issue",
    "description": "Found something broken at HSBNE that you don't have the time or skills to fix? You can submit an issue report.",
    "icon": "bug_report",
    "url": "/issue/report/",
    "btn_text": "Report Issue"
  }
]