Skip to main content

Simple forum for Alliance Auth

Project description

AA Forum

Version License Python Django pre-commit Code Style: black Discord

Simple forum app for Alliance Auth

⚠️ Before you install this module ⚠️

This module needs quite some configuration done before working properly. You need to modify your Apache/Nginx configuration as well as the global URL config of Alliance Auth. So please only install if you know what you're doing/feel comfortable to make these kind of changes. For you own sanity, and mine :-)

Contents

Overview

Work in progress on this one

Installation

⚠️ This is still in development, so only install it if you know what you're doing ⚠️

Important: Please make sure you meet all preconditions before you proceed:

  • AA Forum is a plugin for Alliance Auth. If you don't have Alliance Auth running already, please install it first before proceeding. (see the official AA installation guide or details)
  • AA Forum needs a couple of changes made to your Webserver and Alliance Auth configuration. So make sure you know how to do so. The steps needed will be described in this document, but you need to understand what will be changed.

Step 1 - Install the package

Make sure you are in the virtual environment (venv) of your Alliance Auth installation Then install the latest release directly from PyPi.

pip install aa-forum

Step 2 - Configure Alliance Auth

This is fairly simple, configure your AA settings (local.py) as follows:

# AA Forum
INSTALLED_APPS += [
    "ckeditor",
    "ckeditor_uploader",
    "aa_forum",  # https://github.com/ppfeufer/aa-forum
]

MEDIA_URL = "/media/"
MEDIA_ROOT = "/var/www/myauth/media/"

X_FRAME_OPTIONS = "SAMEORIGIN"

CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_RESTRICT_BY_USER = True
CKEDITOR_ALLOW_NONIMAGE_FILES = False

Now let's move on to editing the global URL configuration of Alliance Auth. To do so, you need to open /home/allianceserver/myauth/myauth/urls.py and change the following:

from django.conf.urls import include, url
from allianceauth import urls

# *** New Imports for cKeditor
from django.urls import re_path
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache
from ckeditor_uploader import views

urlpatterns = [
    # *** New URL override for cKeditor BEFORE THE MAIN IMPORT
    re_path(r"^upload/", login_required(views.upload), name="ckeditor_upload"),
    re_path(
        r"^browse/",
        never_cache(login_required(views.browse)),
        name="ckeditor_browse",
    ),
    # Alliance Auth URLs
    url(r"", include(urls)),
]

handler500 = "allianceauth.views.Generic500Redirect"
handler404 = "allianceauth.views.Generic404Redirect"
handler403 = "allianceauth.views.Generic403Redirect"
handler400 = "allianceauth.views.Generic400Redirect"

Step 3 - Configure your webserver

Your webserver needs to know from where to serve the uploaded mages of course, so we have to tell it.

Apache

In your vhost configuration you have a line ProxyPassMatch ^/static !, which tells the server where to find all the static files. We are adding a similar line for the media, right below that one.

Add the following right below the static proxy match:

ProxyPassMatch ^/media !

Now we also need to let the server know where to find the media directory we just configured the proxy for. To do so, add a new Alias to your configuration. This can be done right below the already existing Alias for /static:

Alias "/media" "/var/www/myauth/media/"

At last a Directory rule is needed as well. Add the following below the already existing Directory rule for the static files:

<Directory "/var/www/myauth/media/">
    Require all granted
</Directory>

So the whole block should now look like this:

ProxyPassMatch ^/static !
ProxyPassMatch ^/media !  # *** NEW proxy rule
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
ProxyPreserveHost On

Alias "/static" "/var/www/myauth/static/"
Alias "/media" "/var/www/myauth/media/"

<Directory "/var/www/myauth/static/">
    Require all granted
</Directory>

<Directory "/var/www/myauth/media/">
    Require all granted
</Directory>

Restart your Apache webserver.

Nginx

In order to let Nginx know where to find the uploaded files, you need to add a new location rule to the configuration.

location /media {
    alias /var/www/myauth/media;
    autoindex off;
}

Restart your Nginx webserver.

Step 4 - Finalize the installation

Run static files collection and migrations

python manage.py collectstatic
python manage.py migrate

Restart your supervisor services for Auth

Step 5 - Set up permissions

Now it's time to set up access permissions for your new module. You can do so in your admin backend. Read the Permissions section for more information about the available permissions.

Permissions

ID Description Notes
basic_access Can access the AA-Forum module Grants read access to the forum
manage_forum Can manage the AA-Forum module (Categories, topics and messages) Grants the right to add, edit and delete topics, boards and categories, as well as messages

Changelog

See CHANGELOG.md

Contributing

You want to contribute to this project? That's cool!

Please make sure to read the contribution guidelines (I promise, it's not much, just some basics)

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa-forum-0.0.1a3.tar.gz (303.1 kB view details)

Uploaded Source

Built Distribution

aa_forum-0.0.1a3-py3-none-any.whl (331.9 kB view details)

Uploaded Python 3

File details

Details for the file aa-forum-0.0.1a3.tar.gz.

File metadata

  • Download URL: aa-forum-0.0.1a3.tar.gz
  • Upload date:
  • Size: 303.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for aa-forum-0.0.1a3.tar.gz
Algorithm Hash digest
SHA256 4e2a5d9671227ca8f03c38bb46bac10cc9de90885a2d6483b69b8cf86dbbc125
MD5 93e2fe06d2cbf54ab00dcd12ec8dcc00
BLAKE2b-256 bd97f209d6d800705c17bfc63d982dc7579be825df7e9c8e8ac88fe0c021c1c4

See more details on using hashes here.

File details

Details for the file aa_forum-0.0.1a3-py3-none-any.whl.

File metadata

  • Download URL: aa_forum-0.0.1a3-py3-none-any.whl
  • Upload date:
  • Size: 331.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.8.10

File hashes

Hashes for aa_forum-0.0.1a3-py3-none-any.whl
Algorithm Hash digest
SHA256 c8132ec19c63356263d6283a64d2dcc1a203939560bc70c655c738c671be4c69
MD5 0dc76f92fe81fa1e82b549733cdd9f5f
BLAKE2b-256 ba2fbd37646fbdb20f2b0b6957fa2a4c72b9eea55e26478e3fa9c8301334ed4c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page