aboutsummaryrefslogtreecommitdiff

Reddit Nextcloud importer

A process to import images and videos from saved post on reddit to a instance of Nextcloud.

apk

This project is available as an apk at apkbuilds.

Environment variables

  • CLIENT_ID and CLIENT_SECRET: crendentials needed to access Reddit's API. To get those info you'd need:
  • Go to authorized application page
  • Click on Create another app... button at the bottom of the page.
  • Input the information and pick script.
  • You can use http://localhost:8080 on redirect uri field as you won't need it.

  • REDDIT_USERNAME and REDDIT_PASSWORD: user credential to access Reddit's API. Because you chose script that user need to be listed as a developer in the application page. To add a new user as a developer go to authorized application page and click on the edit button on the application you just created. It will open a field add developer.

  • NEXTCLOUD_HOST: the host domain a port for the nextcloud instance.

  • NEXTCLOUD_USERNAME and NEXTCLOUD_PASSWORD: user credential for the nextcloud instance.

  • NEXTCLOUD_PATH: root folder for where all the images will be saved.

  • FROM_BEGINNING: it will download all the files since the first available saved post.

  • LOG_LEVEL: it will set the log level:

  • info
  • error

Running as docker container

Since I'm not distributing this project as docker anymore feel free to build it yourself. I have it packed for alpine already, you can start with the following dockerfile

FROM alpine:3.16

RUN apk add curl

RUN echo "https://artifacts.gabrielgio.me/repo/v3.16/" >> /etc/apk/repositories
RUN curl https://artifacts.gabrielgio.me/repo/mail%40gabrielgio.me-62ddc4dc.rsa.pub \
    -o  /etc/apk/keys/mail@gabrielgio.me-62ddc4dc.rsa.pub

RUN apk add reddit-nextcloud-importer

ENTRYPOINT reddit-nextcloud-importer

then run:

docker build -t reddit-nextcloud-importer .

To run as docker you need to pass all the environment variables listed above:

docker run -d --rm \
  -e CLIENT_ID=$CLIENT_ID \
  -e CLIENT_SECRET=$CLIENT_SECRET \
  -e REDDIT_USERNAME=$REDDIT_USERNAME \
  -e REDDIT_PASSWORD=$REDDIT_PASSWORD \
  -e NEXTCLOUD_HOST=$REDDIT_HOST \
  -e NEXTCLOUD_USERNAME=$NEXTCLOUD_USERNAME \
  -e NEXTCLOUD_PASSWORD=$NEXTCLOUD_PASSWORD \
  -e NEXTCLOUD_PATH=$NEXTCLOUD_PATH \
  reddit-nextcloud-importer:latest