M Dockerfile => Dockerfile +4 -1
@@ 1,7 1,7 @@
FROM hexpm/elixir:1.15.4-erlang-26.0.2-alpine-3.18.2 as otp
ARG MIX_ENV="prod"
ARG TMPDIR="/tmp/akkoma"
-ARG BUILD_TAG="v3.10.2"
+ARG BUILD_TAG="v3.13.2"
ARG PLEROMA_BUILD_BRANCH=${BUILD_TAG}
# install dependencies
RUN apk add git gcc g++ musl-dev make cmake file-dev rclone wget zip imagemagick
@@ 38,6 38,7 @@ ENV DB_HOST=db
ENV DB_NAME=${DB_USER}
ENV DB_PASS=postgres
ENV INSTANCE_DOMAIN=akkoma.example.com
+ENV MEDIA_URL=https://akkoma.example.com/media
ENV INSTANCE_NAME=Akkoma
ENV INSTANCE_ADMIN_EMAIL=admin@example.com
ENV INSTANCE_NOTIFY_EMAIL=info@example.com
@@ 53,6 54,8 @@ ENV STRIP_UPLOADS=y
ENV ANONYMIZE_UPLOADS=n
# one of [y,n]
ENV DEDUPLICATE_UPLOADS=n
+# one of [y,n]
+ENV READ_UPLOAD_DATA=y
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT /entrypoint.sh
M README.md => README.md +13 -0
@@ 1,4 1,7 @@
# akkoma-basic-alpine
+
+**If your are looking for the official akkoma provided docker images, click [here](https://docs.akkoma.dev/stable/installation/docker_en/)**
+
Unofficial [Akkoma](https://akkoma.social) docker image based on [Alpine Linux](https://alpinelinux.org),
focused on putting as many files into the docker file as possible,
to reduce the hassle of git fetching the latest stable version
@@ 61,3 64,13 @@ For example to install `pleroma-fe` and the `admin-fe` frontends:
```
Additional information is available in the [official documentation](https://docs.akkoma.dev/stable/administration/CLI_tasks/frontend/)
+
+### Updating
+Turn off the docker container
+```bash
+docker container stop <container-name/id>
+```
+
+Afterwards update the image by rebuilding it, or pulling the prebuilt.
+
+And start your container again.
M docker-compose.yml => docker-compose.yml +19 -13
@@ 25,32 25,38 @@ services:
# you don't have to change this,
# because the database isn't accessible from the outside
#######################################
- - DB_HOST=db
- - DB_USER=postgres
- - DB_NAME=postgres
- - DB_PASS=postgres
+ DB_HOST: "db"
+ DB_USER: "postgres"
+ DB_NAME: "postgres"
+ DB_PASS: "postgres"
#######################################
# AKKOMA CONFIGURATION
#######################################
# domain of the instance
- - INSTANCE_DOMAIN=akkoma.example.com
+ INSTANCE_DOMAIN: "social.localhost"
+ # base url of media server
+ MEDIA_URL: "http://social.localhost/media"
# display name of the instance
- - INSTANCE_NAME=Akkoma
+ INSTANCE_NAME: "Akkoma"
# email of the admin user
# (the admin user ISN'T automatically created, use this as a contact email instead)
- - INSTANCE_ADMIN_EMAIL=admin@example.com
+ INSTANCE_ADMIN_EMAIL: "admin@example.com"
# email used to send notifications
- - INSTANCE_NOTIFY_EMAIL=info@example.com
+ INSTANCE_NOTIFY_EMAIL: "info@example.com"
# allow search engines to index your instance
- - INSTANCE_INDEX=y
+ INSTANCE_INDEX: "y"
# remove GPS data from uploads
- - STRIP_UPLOADS=y
- # anonymize uploads
- - ANONYMIZE_UPLOADS=n
+ STRIP_UPLOADS: "y"
# use image hash to remove duplicates
# might save storage space
# ingreases upload duration
- - DEDUPLICATE_UPLOADS=n
+ DEDUPLICATE_UPLOADS: "n"
+ # anonymize uploads
+ ANONYMIZE_UPLOADS: "n"
+ # read data from uploaded files
+ # alows clients to prefill fields like image description
+ # requires exiftool
+ READ_UPLOAD_DATA: "y"
volumes:
- ./config:/akkoma/config
- ./static:/akkoma/static
M entrypoint.sh => entrypoint.sh +3 -2
@@ 21,6 21,7 @@ if [ ! -f $AKKOMA_CONFIG_PATH ]; then
--output-psql $AKKOMA_DB_PATH \
--domain "$INSTANCE_DOMAIN" \
--instance-name "$INSTANCE_NAME" \
+ --media-url "$MEDIA_URL" \
--admin-email "$INSTANCE_ADMIN_EMAIL" \
--notify-email "$INSTANCE_NOTIFY_EMAIL" \
--dbhost "$DB_HOST" \
@@ 34,9 35,9 @@ if [ ! -f $AKKOMA_CONFIG_PATH ]; then
--static-dir "$AKKOMADIR/static" \
--listen-ip "0.0.0.0" \
--listen-port "4000" \
- --strip-uploads "$STRIP_UPLOADS" \
+ --strip-uploads-metadata "$STRIP_UPLOADS" \
--anonymize-uploads "$ANONYMIZE_UPLOADS" \
- --dedupe-uploads "$DEDUPLICATE_UPLOADS"
+ --read-uploads-description "$READ_UPLOAD_DATA"
echo "-- Generated instance config --"
fi