KnowHow DB
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Acrarium

Acrarium is a backend for ACRA, which is an android crash reporting tool.

Setup

The service will be run in a docker container using our reverse proxy.

The official setup guide’s docker-compose uses a mysql DB and the acrarium image (f43nd1r/acrarium) itself doesn’t support arm64. So in order to run it on a raspberry pi 4, we’ll have to make some adjustments. If you’re not running the acrarium instance on an arm64 device, use the docker-compose from the official guide (reverse-proxy config needs to be adapted).

Dockerfile

FROM alpine:latest

ENV JAVA_HOME="/usr/lib/jvm/default-jvm/"

RUN apk update \
        && apk add openjdk11 \
        && apk add wget

ENV PATH=$PATH:${JAVA_HOME}/bin

RUN mkdir /opt/app \
        && wget https://github.com/F43nd1r/Acrarium/releases/download/v1.3.2/acrarium-1.3.2-SNAPSHOT.jar -P /opt/app

EXPOSE 8080
CMD ["java", "-jar", "/opt/app/acrarium-1.3.2-SNAPSHOT.jar"]

Docker-Compose

Instead of the mysql image we’re using mariadb. Other than that and the reverse-proxy config, the docker-compose file is equal to the one from the official setup guide.

version: "3.9"

services:
   database:
       image: mariadb:latest
       container_name: database
       networks: ["server"]   
       environment:
           MYSQL_ROOT_PASSWORD: "<MYSQL_ROOT_PASSWORD>"
           MYSQL_DATABASE: "acrarium"
           MYSQL_USER: "acrarium"
           MYSQL_PASSWORD: "<MYSQL_PASSWORD>"
       expose:
           - "3306"
       volumes:
           - acrarium_data:/var/lib/mysql
   acrarium:
       build: .
       container_name: acrarium
       networks: ["server"]
       depends_on:
           - database
       restart: always
       ports:
         - 8080:8080
       environment:
           VIRTUAL_HOST: "acrarium.<YOUR_DOMAIN>"
           VIRTUAL_PORT: 8080
           LETSENCRYPT_HOST: "acrarium.<YOUR_DOMAIN>"
           SERVER_PORT: 8080
           SPRING_DATASOURCE_URL: "jdbc:mysql://database:3306/acrarium?useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
           SPRING_DATASOURCE_USERNAME: "acrarium"
           SPRING_DATASOURCE_PASSWORD: "<MYSQL_PASSWORD>"
           SPRING_JPA_DATABASE-PLATFORM: "org.hibernate.dialect.MariaDB10Dialect"

volumes:
   acrarium_data:

networks:
    server:
        external: true

ACRA Setup

Before you can setup your android app, a new app has to be added to your acrarium instance. Go to https://acrarium.<YOUR_DOMAIN> and create it. The credentials will be created and shown once. The shown URI is probably wrong, the correct one is https://acrarium.<YOUR_DOMAIN>/report.

With this info you can setup an ACRA httpSender. The official acra setup guide is pretty detailed.