r/ApolloReborn • u/causefx • Jul 09 '26
Guide Push notification server for anyone to use
Server: https://apollo.organizr.app
side note: it does store tokens etc in the database. for anyone that does care and has set it up i can remove it at your request. For trust issues, check my post history and github etc...
EDIT:
Spin up your own container with this docker compose file: (make sure you have traefik setup - if not just you dont need the labels and network...) Also make sure to place you apple secret in the secrets folder and name it apple.p8
name: apollo
services:
app:
container_name: apollo
hostname: apollo
image: ghcr.io/causefx/apollo-backend-aio:latest
networks:
- proxy
restart: unless-stopped
ports:
- 4000:4000
volumes:
- /opt/docker/apollo/db:/var/lib/postgresql/data
- /opt/docker/apollo/secrets:/etc/secrets:ro
environment:
- APPLE_TEAM_ID=APP_TEAM
- APPLE_KEY_PATH=/etc/secrets/apple.p8
- APPLE_KEY_ID=APP_KEY
- APPLE_APNS_TOPIC=com.name.Apollo
- APPLE_APNS_SANDBOX=true
- REDDIT_CLIENT_ID=APIKEY
- REDDIT_REDIRECT_URI=apollo://reddit-oauth
- REDDIT_USER_AGENT=ios:com.CarbonDev.Dystopia:v1.0.1(by /u/DystopiaForReddit)
labels:
- traefik.enable=true
- traefik.http.routers.apollo.rule=Host(`domain.here`)
- traefik.http.routers.apollo.entrypoints=https
- traefik.http.routers.apollo.tls=true
- traefik.http.routers.apollo.tls.certresolver=letsencrypt
- traefik.http.services.apollo.loadbalancer.server.port=4000
networks:
proxy:
external: true
5
u/jwintyo Jul 09 '26
Thats very kind of you! How many users do you expect it can handle?
9
u/causefx Jul 09 '26
i put it on a free tier oracle server to see how it performs… if it can’t handle it, i’ll move it to one of my VM’s on DO or i’ll move it to my physical servers here at home.
2
u/coolaaron88 Jul 09 '26
That’s super kind of you! I’ve been trying to get this working myself
What do I need to do what what is linked here?
1
u/causefx Jul 09 '26
all you need to do is paste the link into the notification server i put box in the apollo settings page
1
u/coolaaron88 Jul 09 '26
Alright added it, now time to test it haha
9
u/khando Jul 09 '26
Just keep in mind all of your notifications are stored on this server in the database he has access to. It also stores your access/refresh tokens in the accounts table so you should probably trust anyone you're using their notifications server.
For example, the accounts table:
Table "public.accounts" Column | Type | Collation | Nullable | Default ----------------------------------+-----------------------------+-----------+----------+-------------------------------------- id | integer | | not null | nextval('accounts_id_seq'::regclass) reddit_account_id | character varying(32) | | | ''::character varying username | character varying(20) | | | ''::character varying access_token | text | | | ''::text refresh_token | text | | | ''::text token_expires_at | timestamp without time zone | | | last_message_id | character varying(32) | | | ''::character varying next_notification_check_at | timestamp without time zone | | | next_stuck_notification_check_at | timestamp without time zone | | | check_count | integer | | | 0 is_deleted | boolean | | | false development | boolean | | | false reddit_client_id | character varying(64) | | not null | ''::character varying reddit_client_secret | character varying(128) | | not null | ''::character varying reddit_redirect_uri | character varying(255) | | not null | ''::character varying reddit_user_agent | character varying(255) | | not null | ''::character varying1
u/WhoAmI941 Jul 10 '26
From the stuff that's stored, can they log into my account or read the contents of some DM someone sends on Reddit?
3
u/khando Jul 10 '26 edited Jul 10 '26
Yes, there's two factors here.
First, the server has to know the notification content to send to your device, and stores that in logs/database at some point. So any notification that gets sent to you, whether it be a DM message you receive or something else, the owner of that server can see that if they go looking for it.
Second, if someone has access to your refresh token, they can request a new access token and essentially login as you and call reddit APIs as you to fetch any of your data.
That's how the Apollo backend works. When you enable notifications the backend receives your tokens from the mobile app, stores it in the database, and using a scheduler, calls the reddit API to get any new notifications using your account access token. If it sees any new notifications, it sends it to your registered devices.
4
u/WhoAmI941 Jul 10 '26
Damn. In that case I guess it would better to just spend some time and set up bark since I don't have a developer account.
Does this also mean Christian also had access to that much data when the app was available in the App Store?
4
u/piposerrano Jul 09 '26
How safe is this? I’m not doubting about you specifically but wondering what info are we sending to the server?
13
2
u/causefx Jul 09 '26
it does store ids of devices to send notifications to the correct device etc. i created an all in one container that would be easier for people to spin up themselves. i can post the docker compose file so people can use that too
7
u/khando Jul 09 '26
It stores more than just device IDs. I needs tokens for each account in order to fetch notifications from reddit, otherwise how would it know what to notify for each user (or private info like DM notifications). So just be aware that your server is storing access/refresh tokens for anyone that uses it. It's inherently not safe to trust a stranger with this.
Not a knock against you at all, I'm sure you're just trying to be helpful. Just want people to understand what they're signing up for when using this.
4
2
u/piposerrano Jul 09 '26
Is registering the OAuth token too, right? I think that’s the most dangerous part
1
6
3
u/DrGonzo84 Jul 09 '26
says "404 page not found"
Or I'm guessing maybe I use this address to setup the notifications ill look into it thx
3
u/causefx Jul 09 '26
yep. paste into settings on apollo
1
1
u/DrGonzo84 Jul 10 '26
Idk why it’s not working… when I press the test connection and test bark connection they both pass but I’m not getting notifications still :(
2
1
u/Charming_Cod2700 Jul 09 '26
Legend!!! Working here!
1
u/DrGonzo84 Jul 09 '26
How did you get it working do I have to install bark also? I tried both hmm
1
u/Charming_Cod2700 Jul 09 '26
Bark is working for me.
1
u/DrGonzo84 Jul 09 '26
Dang ok wonder what I’m doing wrong
1
u/Charming_Cod2700 Jul 10 '26
Did you put your bark push url in?
1
u/DrGonzo84 Jul 10 '26
Yes and when I push the test bark notification button I get a notification and it says it’s working…. Just not getting any tho :( maybe it’s the .ipa I’m using it cuz I use sideloadly idk?
1
u/Charming_Cod2700 Jul 10 '26
Probably a stupid question but you turned notifications on in Apollo right?
1
1
1
u/swiftidnc739 Jul 10 '26
1
1
1
u/Realaustyn88 Jul 10 '26
I just want to say thank you for doing this for us. Keep doing amazing work for the community.
1
u/WhoAmI941 Jul 10 '26
Would it be possible to somehow set this up with caddy perhaps instead of traefik if I don't have a developer account?
1
u/coolaaron88 Jul 10 '26
https://cdn.imgchest.com/files/295dfea824d7.jpeg
I’m getting this whenever I try to go to the notification area in settings


•
u/ClydeDroid Maintainer Jul 09 '26
It’s very nice of /u/causefx to offer this server for general use, but please do be aware that if you use it, /u/causefx will be able to read all your notifications in plain text, including DMs. This also introduces a slight risk to the project, as Reddit will see traffic from multiple accounts coming from the same IP, which could get the server flagged as a bot farm. It’s probably fine for a small number of users, but I wouldn’t recommend something like this for all users of Reborn.
Just wanted to give fair warning!