1.39.0
New Web Interface
This release finally brings a huge update to the web interface of shinpuru. Because the old web interface had no clear style concept while also growing with each new feature, it got more and more cluttered, unstructured, obscure and simply uglier. So I decided almost a year ago to rewrite the whole web interface, which has now come to the final stage. There is still a lot to do and - especially translation-wise - a lot missing, but the feature set is now 100% ported and so I decided to finally port it over.
Here you can see a very small demo of the new web interface.
firefox_GCcqUWkYER.mp4
The whole web interface is now also more optimized for mobile usage!
Screen_Recording_20230315_201935_Firefox.mp4
And because the web app is now a PWA as well, you can even install it on your device when you are using a chromium browser!
Screen_Recording_20230315_202339_Niagara_Launcher.mp4
But feel free to discover the new web interface on your own. It is still far from perfect, so if you spot an issue or have an idea for improvement, feel free to create an issue!
Also, there are still a lot of german translations missing. So if you want to contribute some translations, feel free to do so. In the Contributing document, you can find some useful information on how to work with the language files.
Unban Request Improvements
The unban request received a small "rework". First of all, special reports are created in the mod log which display if an unban request has been accepted or rejected and who has processed the unban request.
Additionally, people will not be able to re-request an unban for 14 days after being rejected. After that period has passed, the banned user can try another unban request.
Also, a bug has been fixed where people were able to request unbans for guilds where they were already unbanned from.
New Logger
To improve the logs of shinpuru both in visibility as well as in flexibility, I've created my own logging package called rogu. It allows colorful, human readable, taggable, strctured logging with a simple API to append multiple output writers.
An additional output writer has been written for pushing logs to Grafana Loki which allows central log aggregation for multiple instances of shinpuru. Simply add the following config to your logging config to enable loki log pushing.
# Logging preferences
logging:
# Set the log level of the logger
# Log levels can be found here:
# https://github.com/zekroTJA/rogu/blob/main/level/level.go
loglevel: 4
# Specify Grafana Loki configuration
# for log aggregation
loki:
# Whether to enable sending logs to loki or not
enabled: true
# The address of the loki instance
address: "https://loki.example.com"
# The basic auth user name (leave empty if not used)
username: "username"
# The basic auth password (leave empty if not used)
password: "2374n8er7nt8034675782345"
# Additional labels set to all log entries.
labels:
# Some examples ...
app: "shinpuru"
instance: "main"
The provided example Grafana Dashboard shows how aggregated logs can be visualized in Grafana.
PushCode Login
Because there is a potential risk that the pushcode login system could be abused by attackers to phish login sessions, a confirmation promt has been added with a warning that you should never enter a login code to shinpuru's DMs which you have received from someone else (see issue #412).
API Changes
- New API Endpoint
GET /allpermissions
which returns a list of all available permissions. - New API Endpoint
GET /healthcheck
which can be requested to get the health state of shinpuru services. - New API Endpoint
GET /guilds/{id}/starboard/count
to retrieve the total count of starboard entries for a given guild. - New API Endpoint
GET /guilds/{id}/unbanrequests/count
to retrieve the total count of unbanrequests for a given guild. - Update API Endpoint
POST /guilds/{id}/permissions
which now returns the resulting updated permissions map.
Docker Image
The docker image now includes a healthcheck which shows and monitors the state of the shinpuru instance using the GET /healthcheck
API endpoint.
Other Stuff
- The state cache duration for users and members has now be increased from 30 days to 90 days for better performance.
Docker
Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.
Pull the docker image of this release:
From DockerHub:
$ docker pull zekro/shinpuru:1.39.0
From GHCR:
$ docker pull ghcr.io/zekrotja/shinpuru:1.39.0