1

#SelfHosted #LinkAce Bookmark Manager Running, but Unable to Check for Updates or Generate a Cron Token

Hi all. Hoping someone in the #SelfHosting community can help here. I'm running LinkAce in #Docker behind non-Dockerized #Caddy and #Authelia, and most things are working, but I'm seeing "Could not check for updates" at the bottom of each page, and when I tried to generate a cron token, nothing happened except for the generate button graying out. I am seeing one or two 404 errors in my logs, but I don't know if that's causing the problem or not. I don't know much about #PHP applications.

Logs

2025-02-22 23:25:26,460 INFO supervisord started with pid 12025-02-22 23:25:27,465 INFO spawned: 'php-fpm' with pid 82025-02-22 23:25:27,467 INFO spawned: 'caddy' with pid 9[22-Feb-2025 23:25:27] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root[22-Feb-2025 23:25:27] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root[22-Feb-2025 23:25:27] NOTICE: fpm is running, pid 8[22-Feb-2025 23:25:27] NOTICE: ready to handle connections{"level":"info","ts":1740266727.5264525,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}{"level":"info","ts":1740266727.5280282,"msg":"adapted config to JSON","adapter":"caddyfile"}{"level":"warn","ts":1740266727.5280406,"msg":"Caddyfile input is not formatted; run 'caddy fmt --overwrite' to fix inconsistencies","adapter":"caddyfile","file":"/etc/caddy/Caddyfile","line":2}{"level":"info","ts":1740266727.529092,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}{"level":"warn","ts":1740266727.529331,"logger":"http.auto_https","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}{"level":"info","ts":1740266727.5294206,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0x40000bab00"}{"level":"warn","ts":1740266727.530186,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":80"}{"level":"warn","ts":1740266727.530195,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":80"}{"level":"info","ts":1740266727.530198,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}{"level":"info","ts":1740266727.5412574,"msg":"autosaved config (load with --resume flag)","file":"/home/www-data/.config/caddy/autosave.json"}{"level":"info","ts":1740266727.541271,"msg":"serving initial configuration"}{"level":"info","ts":1740266727.5477707,"logger":"tls","msg":"cleaning storage unit","storage":"FileStorage:/home/www-data/.local/share/caddy"}{"level":"info","ts":1740266727.5541356,"logger":"tls","msg":"finished cleaning storage units"}2025-02-22 23:25:28,555 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)2025-02-22 23:25:28,555 INFO success: caddy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)::1 -  22/Feb/2025:23:25:34 +0000 "GET /index.php" 200::1 -  22/Feb/2025:23:25:34 +0000 "GET /index.php" 404

Docker Compose file

services:  #
***
LinkAce  linkace:    image: docker.io/linkace/linkace:latest    container_name: linkace    restart: unless-stopped    depends_on:      - linkace_db    ports:      - "0.0.0.0:3009:80"    volumes:      - ./.env:/app/.env      - ./backups:/app/storage/app/backups  #
***
Database  linkace_db:    image: docker.io/library/mariadb:11.5    container_name: linkace_db    restart: unless-stopped    command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_bin    environment:      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}      - MYSQL_USER=${DB_USERNAME}      - MYSQL_PASSWORD=${DB_PASSWORD}      - MYSQL_DATABASE=${DB_DATABASE}    volumes:      - db:/var/lib/mysql  #
***
Cache  linkace_redis:    image: docker.io/bitnami/redis:7.4    container_name: linkace_redis    restart: unless-stopped    environment:      - REDIS_PASSWORD=${REDIS_PASSWORD}volumes:  db:

.env (secrets redacted)

## LINKACE CONFIGURATION# The app key is generated later, please leave it like thatAPP_KEY=redactedAPP_ENV=development## Configuration of the database connection## Attention: Those settings are configured during the web setup, please do not modify them now.# Set the database driver (mysql, pgsql, sqlsrv, sqlite)DB_CONNECTION=mysql# Set the host of your database hereDB_HOST=linkace_db# Set the port of your database hereDB_PORT=3306# Set the database name hereDB_DATABASE=linkace# Set both username and password of the user accessing the databaseDB_USERNAME=linkace# Wrap your password into quotes (") if it contains special charactersDB_PASSWORD=redacted## Redis cache configuration# Set the Redis connection here if you want to use itREDIS_HOST=linkace_redisREDIS_PASSWORD=redactedREDIS_PORT=6379APP_DEBUG=true# SSO configurationSSO_ENABLED=trueSSO_OIDC_ENABLED=trueSSO_REGISTRATION_ENABLED=trueREGULAR_LOGIN_DISABLED=trueSSO_OIDC_BASE_URL=https://auth.laniecarmelo.tech/  # Your Authelia base URLSSO_OIDC_CLIENT_ID=linkaceSSO_OIDC_CLIENT_SECRET='redacted'SSO_OIDC_SCOPES=openid,profile,email

Caddyfile snippet

{    email laniecarmelo@gmail.com    debug    acme_dns cloudflare redacted    http_port 80    https_port 443    admin :2019 {        origins 127.0.0.1:2019 0.0.0.0:2019 stormux:2019 caddy.laniecarmelo.tech    }}(logconfig) {    log {        output stdout        format json    }}(auth_headers) {    header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"}(proxy_config) {    header_up Host {http.request.host}    header_up X-Real-IP {http.request.remote}    header_up X-Forwarded-User {http.auth.user.id} # Pass user ID    header_up X-Forwarded-Email {http.auth.user.email} # Pass email}(authelia_middleware) {    forward_auth localhost:9091 {        uri /api/verify?rd=https://auth.laniecarmelo.tech        copy_headers Remote-User Remote-Email Remote-Groups Authorization    }}bookmarks.laniecarmelo.tech {    route {        import authelia_middleware        reverse_proxy localhost:3009 {  # Directly proxy to LinkAce's web server            import proxy_config        }    }    import logconfig    import auth_headers}

Authelia config snippet

    - domain: "*.laniecarmelo.tech"      policy: bypass      networks:        - 192.168.1.0/24    # Local network        - 172.17.0.0/16     # Docker bridge network        - 100.64.0.0/10     # Tailscale network    - domain: "bookmarks.laniecarmelo.tech"      resources: ["^/api.*"]      policy: bypass    - domain: "*.laniecarmelo.tech"      policy: one_factor            - client_id: linkace        client_name: LinkAce bookmarking app        client_secret: redacted         public: false        authorization_policy: one_factor        scopes: [openid, groups, profile, email, offline_access]        redirect_uris:          - https://bookmarks.laniecarmelo.tech/auth/oidc/callback        grant_types: [authorization_code]        response_types: [code]        response_modes: [form_post, query]        userinfo_signed_response_alg: none        consent_mode: explicit        pre_configured_consent_duration: "1y"

Does anyone know what might be causing this and how I can fix it?
#Linux #ArchLinuxARM #Stormux #RaspberryPi #RaspberryPi500 #RPi #RPi500 #tech #technology
@selfhost @selfhosted @selfhosting

[-] RareBird15@allovertheplace.ca 0 points 1 week ago

@just_another_person Someone else helped me figure it out. My proxy rule for MiniFlux was a bit off. It works now. Lol now trying to get ReactFlux working.

[-] RareBird15@allovertheplace.ca 0 points 1 week ago

@just_another_person I've looked at my console log, and it's blank. Nothing comes up when I get redirected.

[-] RareBird15@allovertheplace.ca -1 points 1 week ago

@just_another_person I've looked into it a little, and I don't think I need to add paths to my Caddyfile since MiniFlux has its own subdomain with nothing else on it. From what I've gathered, adding paths is most useful if you have different services running on one subdomain.

[-] RareBird15@allovertheplace.ca -1 points 1 week ago

@just_another_person Not sure what paths to add or how. I don't know the MiniFlux UI that well to know every path it needs. I didn't think you had to add paths to the reverse proxy, just the subdomain. That's how all of my services are configured.

1

#MiniFlux users, can anyone help?

Hi all. I'm having some issues with MiniFlux, a #SelfHosted #RSSReader, and hoping someone can help. MiniFlux was working fine until I tried to deploy ReactFlux on the same domain as it, rss.laniecarmelo.tech, on a subpath, /reactflux. This didn't work so I removed ReactFlux. I also migrated MiniFlux from #Docker to #Pacman package, thinking it would be easier on my system. This problem, or a similar one, was occurring before I did that though.

Now, rss.laniecarmelo.tech loads the MiniFlux login page, but when I login, it redirects to a blank page at rss.laniecarmelo.tech/login. I've added trusted proxies and cookie configuration to my miniflux.conf and headers to my Caddyfile, but I still have the issue.

I'm using #Caddy for #ReverseProxy and #Cloudflare for #SSO. Has anyone seen anything like this before? This is on a #RaspberryPi500 running #ArchLinuxARM.

I've checked MiniFlux logs, and it's getting the login requests and creating sessions. I'm not sure what's happening after that. Cloudflared and Caddy seem to be working normally.

#SelFhosting #Linux #RSS #RaspberryPi #RPi #tech #technology
@selfhost @selfhosted @selfhosting

RareBird15

joined 1 week ago