redlib-org / redlib

Private front-end for Reddit
GNU Affero General Public License v3.0
1.14k stars 78 forks source link

🐛 Bug Report: not able to use v0.31.2 #71

Closed 05warmupsdelayer closed 3 months ago

05warmupsdelayer commented 6 months ago

Every time install it shows as v0.31.0 along the bottom

The expected behaviour is that the latest version would installed when pulled from quay.io/redlib/redlib:latest

If that can't be done, clear directions on how to build latest using docker build would be helpful, I keep getting error

ERROR: failed to solve: process "/bin/sh -c curl -L https://github.com/redlib-org/redlib/releases/latest/download/redlib-${TARGET}.tar.gz | tar xz -C /usr/local/bin/" did not complete successfully: exit code: 1

Thanks!

semyonsh commented 6 months ago

The current Dockerfile uses an ARG instruction in order to pass the right release, it can be specified when building with --build-arg target=<target>.

BUT: It seems the releases haven't been... released? I can only see source code on the release page, atleast not after v0.31.0.

I've temporarily worked around this by reverting back to the older Dockerfile that also builds the application from b0f985c687bb5f2e4fb5dfb87ea006a0be9beb30, it can be found here: https://github.com/redlib-org/redlib/blob/b0f985c687bb5f2e4fb5dfb87ea006a0be9beb30/Dockerfile.

For anyone running Traefik, I've used the above and commented the health check as mentioned in https://github.com/redlib-org/redlib/issues/62, what sent me down this path initially.

05warmupsdelayer commented 6 months ago

I've temporarily worked around this by reverting back to the older Dockerfile that also builds the application from b0f985c, it can be found here: https://github.com/redlib-org/redlib/blob/b0f985c687bb5f2e4fb5dfb87ea006a0be9beb30/Dockerfile.

Thanks! I was able to build latest. 👍

sigaloid commented 6 months ago

:pensive: the release actions were supposed to be fixed recently, I can see that it's still working. If it doesn't make sense to change the dockerfiles I can change it back. But yes, release infrastructure is just not in a good state right now.

0x20Fearless commented 5 months ago

Without using --build, is there a way to get the latest image?

05warmupsdelayer commented 5 months ago

Without using --build, is there a way to get the latest image?

not that I know if, but here is my Windows Docker Desktop update / build batch file if it helps...

@echo on
mkdir C:\redlib-latest
cd C:\redlib-latest

REM Clone latest changes.
git clone https://github.com/redlib-org/redlib.git

rem Grab working Dockerfile & replace
curl -L "https://raw.githubusercontent.com/redlib-org/redlib/b0f985c687bb5f2e4fb5dfb87ea006a0be9beb30/Dockerfile" -o "redlib\Dockerfile"

REM Build latest image

cd redlib

setlocal

REM Set the desired host port, update to compose-modified.dev.yaml
set HOST_PORT=8081

REM Read the content of compose.dev.yaml
(for /f "delims=" %%i in (compose.dev.yaml) do (
    echo %%i | findstr /C:"version: " > nul
    if errorlevel 1 (
        echo %%i | findstr /C:"8080:8080" > nul
        if not errorlevel 1 (
            echo %%i | findstr /C:"#" > nul
            if not errorlevel 1 (
                echo %%i >> compose-modified.dev.yaml
            ) else (
                echo %%i | powershell -Command - >nul 2>&1
                if errorlevel 1 (
                    rem Remove the line with the version field
                ) else (
                    echo %%i >> compose-modified.dev.yaml
                )
            )
        ) else (
            echo %%i >> compose-modified.dev.yaml
        )
    )
))

REM Retrieve local IP address using PowerShell
for /f "tokens=*" %%i in ('powershell -Command "(Test-Connection -ComputerName $(hostname) -Count 1).IPv4Address.IPAddressToString"') do set "local_ip=%%i"

REM Modify the port & local IP mapping dynamically
powershell -Command "(Get-Content compose-modified.dev.yaml) -replace '8080:8080', '%HOST_PORT%:8080' | Set-Content compose-modified.dev.yaml"
powershell -Command "(Get-Content compose-modified.dev.yaml) -replace 'http://localhost:8080', 'http://%local_ip%:%HOST_PORT%' | Set-Content compose-modified.dev.yaml"

REM Run docker-compose with the modified YAML file
docker-compose -f compose-modified.dev.yaml up -d --build

endlocal

REM Cleanup build dir
cd ..
rmdir /S /Q "redlib"
TrezOne commented 5 months ago

Having a similar issue, except on Ubuntu Jammy. I took @05warmupsdelayer 's suggestion of building the image using the aforementioned Dockerfile. The container comes up as unhealthy , but the web UI is still accessible and usable. Docker Compose entry and container logs with RUST_LOG=trace are below.

Docker Compose Entry

  redlib:
    # image: quay.io/redlib/redlib:latest
    build: ${DOCKERCONFDIR}/redlib/redlib
    restart: always
    container_name: redlib
    ports:
      - 8103:8080 # Specify `127.0.0.1:8080:8080` instead if using a reverse proxy
    environment:
      - REDLIB_SFW_ONLY=off
      - REDLIB_BANNER=
      - REDLIB_ROBOTS_DISABLE_INDEXING=off
      - REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io
      - REDLIB_DEFAULT_THEME=nord
      - REDLIB_DEFAULT_FRONT_PAGE=default
      - REDLIB_DEFAULT_LAYOUT=clean
      - REDLIB_DEFAULT_WIDE=on
      - REDLIB_DEFAULT_POST_SORT=hot
      - REDLIB_DEFAULT_COMMENT_SORT=confidence
      - REDLIB_DEFAULT_SHOW_NSFW=off
      - REDLIB_DEFAULT_BLUR_NSFW=on
      - REDLIB_DEFAULT_USE_HLS=off
      - REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off
      - REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off
      - REDLIB_DEFAULT_SUBSCRIPTIONS=
      - REDLIB_DEFAULT_HIDE_AWARDS=off
      - REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off
      - REDLIB_DEFAULT_HIDE_SCORE=off
      - REDLIB_DEFAULT_FIXED_NAVBAR=on
      - RUST_LOG=trace
    user: nobody
    read_only: true
    security_opt:
      - no-new-privileges=true
      # - seccomp=seccomp-redlib.json
    cap_drop:
      - ALL
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"]
      interval: 5m
      timeout: 3s
    labels:

Container log

Starting Redlib...
 INFO  redlib > Evaluating config.
 INFO  redlib > Evaluating instance info.
 INFO  redlib > Creating OAUTH client.
 INFO  redlib::oauth > [🔄] Spoofing Android client with headers: {"Client-Vendor-Id": "e0479976-ea4c-4432-af8e-0cd254677d44", "X-Reddit-Device-Id": "e0479976-ea4c-4432-af8e-0cd254677d44", "User-Agent": "Reddit/Version 2022.25.0/Build 515072/Android 13"}, uuid: "e0479976-ea4c-4432-af8e-0cd254677d44", and OAuth ID "ohXpoqrZYub1kg"
 DEBUG hyper_rustls::config > with_native_roots processed 147 valid and 0 invalid certs
 DEBUG rustls::client::hs   > No cached session for DnsName("accounts.reddit.com")
 DEBUG rustls::client::hs   > Not resuming any session
 TRACE rustls::client::hs   > Sending ClientHello Message {
    version: TLSv1_0,
    payload: Handshake {
        parsed: HandshakeMessagePayload {
            typ: ClientHello,
            payload: ClientHello(
                ClientHelloPayload {
                    client_version: TLSv1_2,
                    random: 4908c81ac24c68458303b4d3bbd85b672038d1165472b73040d8ca9f9843219c,
                    session_id: cd7b1f8bba56c027d76b6748b4c9d0365c98bc0d42d906f630f178cc6992aaaa,
                    cipher_suites: [
                        TLS13_AES_256_GCM_SHA384,
                        TLS13_AES_128_GCM_SHA256,
                        TLS13_CHACHA20_POLY1305_SHA256,
                        TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
                        TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
                        TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
                        TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
                        TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                        TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
                        TLS_EMPTY_RENEGOTIATION_INFO_SCSV,
                    ],
                    compression_methods: [
                        Null,
                    ],
                    extensions: [
                        SupportedVersions(
                            [
                                TLSv1_3,
                                TLSv1_2,
                            ],
                        ),
                        EcPointFormats(
                            [
                                Uncompressed,
                            ],
                        ),
                        NamedGroups(
                            [
                                X25519,
                                secp256r1,
                                secp384r1,
                            ],
                        ),
                        SignatureAlgorithms(
                            [
                                ECDSA_NISTP384_SHA384,
                                ECDSA_NISTP256_SHA256,
                                ED25519,
                                RSA_PSS_SHA512,
                                RSA_PSS_SHA384,
                                RSA_PSS_SHA256,
                                RSA_PKCS1_SHA512,
                                RSA_PKCS1_SHA384,
                                RSA_PKCS1_SHA256,
                            ],
                        ),
                        ExtendedMasterSecretRequest,
                        CertificateStatusRequest(
                            Ocsp(
                                OcspCertificateStatusRequest {
                                    responder_ids: [],
                                    extensions: ,
                                },
                            ),
                        ),
                        ServerName(
                            [
                                ServerName {
                                    typ: HostName,
                                    payload: HostName(
                                        DnsName(
                                            "accounts.reddit.com",
                                        ),
                                    ),
                                },
                            ],
                        ),
                        KeyShare(
                            [
                                KeyShareEntry {
                                    group: X25519,
                                    payload: c834f0cb5e728cc63f2b36c2ee721e974259c4c37cbf3563b13cbda0dc618928,
                                },
                            ],
                        ),
                        PresharedKeyModes(
                            [
                                PSK_DHE_KE,
                            ],
                        ),
                        SessionTicket(
                            Request,
                        ),
                    ],
                },
            ),
        },
        encoded: 010000ed03034908c81ac24c68458303b4d3bbd85b672038d1165472b73040d8ca9f9843219c20cd7b1f8bba56c027d76b6748b4c9d0365c98bc0d42d906f630f178cc6992aaaa0014130213011303c02cc02bcca9c030c02fcca800ff01000090002b00050403040303000b00020100000a00080006001d00170018000d00140012050304030807080608050804060105010401001700000005000501000000000000001800160000136163636f756e74732e7265646469742e636f6d003300260024001d0020c834f0cb5e728cc63f2b36c2ee721e974259c4c37cbf3563b13cbda0dc618928002d0002010100230000,
    },
}
 TRACE rustls::client::hs   > We got ServerHello ServerHelloPayload {
    legacy_version: TLSv1_2,
    random: f72c1684f5b70d47cafa7c3b25f95b7c08746fb16b834713076dbd5e4953e4c4,
    session_id: cd7b1f8bba56c027d76b6748b4c9d0365c98bc0d42d906f630f178cc6992aaaa,
    cipher_suite: TLS13_AES_128_GCM_SHA256,
    compression_method: Null,
    extensions: [
        SupportedVersions(
            TLSv1_3,
        ),
        KeyShare(
            KeyShareEntry {
                group: X25519,
                payload: f8d6cc9d61c91d0532c3dba40232168d8f3560316a0ef2b36240bf73e0a5ce47,
            },
        ),
    ],
}
 DEBUG rustls::client::hs   > Using ciphersuite TLS13_AES_128_GCM_SHA256
 DEBUG rustls::client::tls13 > Not resuming
 TRACE rustls::client::client_conn > EarlyData rejected
 TRACE rustls::conn                > Dropping CCS
 DEBUG rustls::client::tls13       > TLS1.3 encrypted extensions: [ServerNameAck]
 DEBUG rustls::client::hs          > ALPN protocol is None
 TRACE rustls::client::tls13       > Server cert is CertificateChain([CertificateDer(0x308206bf308205a7a0030201020210013db03af9acb545cff5aaf299f924c8300d06092a864886f70d01010b0500304f310b300906035504061302555331153013060355040a130c446967694365727420496e633129302706035504031320446967694365727420544c532052534120534841323536203230323020434131301e170d3234303131353030303030305a170d3234303731333233353935395a3068310b3009060355040613025553311330110603550408130a43616c69666f726e6961311630140603550407130d53414e204652414e434953434f31153013060355040a130c5245444449542c20494e432e3115301306035504030c0c2a2e7265646469742e636f6d30820122300d06092a864886f70d01010105000382010f003082010a0282010100cfe99a54a3a41ae2292d458172b3a88b4cce2bbba2d73d9e696cf332d168ac031d1a7055f8865a42dc90e7ef867efd536ceac038a527b4ca7a96e35e0a5aee6520b396d7e43a993d78727d5d61143eba451422db055bbdd6c974118bdd5aca655251208a53b5cdd0d7af4522c94d29b73d786ab59f03bf444848e5dc430870281f02e9a7e5df6e3901246ce580a2017411de77aeca15550a16f8754556a754950d1ba2240175e73d94a28307c0db0047dd082e39cd58c6cc0f07870e1f9b1d65e00943a8fdad2c4daa366d868578dcb6b99ec558c51b6b789f28a15e595ff76c2fb04106459f17f69c5525377fb5fb5e2173db7bebb90c81350293d87297c2070203010001a382037c30820378301f0603551d23041830168014b76ba2eaa8aa848c79eab4da0f98b2c59576b9f4301d0603551d0e0416041471e050d1e78052fb2314659d43a78d31aa56692630230603551d11041c301a820c2a2e7265646469742e636f6d820a7265646469742e636f6d303e0603551d20043730353033060667810c0102023029302706082b06010505070201161b687474703a2f2f7777772e64696769636572742e636f6d2f435053300e0603551d0f0101ff0404030205a0301d0603551d250416301406082b0601050507030106082b0601050507030230818f0603551d1f0481873081843040a03ea03c863a687474703a2f2f63726c332e64696769636572742e636f6d2f4469676943657274544c53525341534841323536323032304341312d342e63726c3040a03ea03c863a687474703a2f2f63726c342e64696769636572742e636f6d2f4469676943657274544c53525341534841323536323032304341312d342e63726c307f06082b0601050507010104733071302406082b060105050730018618687474703a2f2f6f6373702e64696769636572742e636f6d304906082b06010505073002863d687474703a2f2f636163657274732e64696769636572742e636f6d2f4469676943657274544c53525341534841323536323032304341312d312e637274300c0603551d130101ff040230003082017f060a2b06010401d6790204020482016f0482016b0169007700eecdd064d5db1acec55cb79db4cd13a23287467cbcecdec351485946711fb59b0000018d0aa3f84b0000040300483046022100cc56dd8961294f758434478a34c2334c6eedba054f667b77b8f800b9c2d6d58b022100a3fcdafe113677e472ae27075461b338a37bd7d272683496938c3f8ebf15d1ba00760048b0e36bdaa647340fe56a02fa9d30eb1c5201cb56dd2c81d9bbbfab39d884730000018d0aa3f87c00000403004730450221009062e6ad5963f6091e829c359e675b6148573886afbf9254bbbbdfbcc64053a8022033c8fa8fd366e83129331ecd1045007de190e48cfbad7bb5c9af4d56c532f521007600dab6bf6b3fb5b6229f9bc2bb5c6be87091716cbb51848534bda43d3048d7fbab0000018d0aa3f8850000040300473045022100b26cd6e49dfaeb15fd4096d8bf1820224f8528ff7a992ccfd5db29fe1472946202203c09ec23c1c7f5af399920a4201119f85268a7cdf4869af7d40eae24e298d5aa300d06092a864886f70d01010b0500038201010076ff1a523adf337c6a742a55cb96585540998deaa90b810ed63f873ee5ca8bc34d7b29f360ca897f85e8b464bb0895d6cb8f7a394fe68cde14b53b13ba76fd39c6cf769c93fdb0c1ab6a617991e79ec00f281df94eeff6dd348153af569240aa38a0b13018cdad0031eed0a3cd1a8bd03638267044cba25873f831e8481f8d9fd2b3d80642bc9aba971695bb9c19ba9a5f4d186957b2fd3ec3ce8b7aaf60dbad9ea9f1cf5231ef5336d172852b5d5143d8a70d0e213f6d030de01d68d61c51bd755c7c7b5e74ed5870c3d101722978ef80f784f6a3f422e92a4d28e2b194ae80209f7b72afa3a7c331d5e0e7e02c21fba648c9709a8dd634d1288bc4ff6dfe40), CertificateDer(0x308204be308203a6a003020102021006d8d904d5584346f68a2fa754227ec4300d06092a864886f70d01010b05003061310b300906035504061302555331153013060355040a130c446967694365727420496e6331193017060355040b13107777772e64696769636572742e636f6d3120301e06035504031317446967694365727420476c6f62616c20526f6f74204341301e170d3231303431343030303030305a170d3331303431333233353935395a304f310b300906035504061302555331153013060355040a130c446967694365727420496e633129302706035504031320446967694365727420544c53205253412053484132353620323032302043413130820122300d06092a864886f70d01010105000382010f003082010a0282010100c14bb3654770bcdd4f58dbec9cedc366e51f311354ad4a66461f2c0aec6407e52edcdcb90a20eddfe3c4d09e9aa97a1d8288e51156db1e9f58c251e72c340d2ed292e156cbf1795fb3bb87ca25037b9a52416610604f571349f0e8376783dfe7d34b674c2251a6df0e9910ed57517426e27dc7ca622e131b7f238825536fc13458008b84fff8bea75849227b96ada2889b15bca07cdfe951a8d5b0ed37e236b4824b62b5499aecc767d6e33ef5e3d6125e44f1bf71427d58840380b18101faf9ca32bbb48e278727c52b74d4a8d697dec364f9cace53a256bc78178e490329aefb494fa415b9cef25c19576d6b79a72ba2272013b5d03d40d321300793ea99f50203010001a38201823082017e30120603551d130101ff040830060101ff020100301d0603551d0e04160414b76ba2eaa8aa848c79eab4da0f98b2c59576b9f4301f0603551d2304183016801403de503556d14cbb66f0a3e21b1bc397b23dd155300e0603551d0f0101ff040403020186301d0603551d250416301406082b0601050507030106082b06010505070302307606082b06010505070101046a3068302406082b060105050730018618687474703a2f2f6f6373702e64696769636572742e636f6d304006082b060105050730028634687474703a2f2f636163657274732e64696769636572742e636f6d2f4469676943657274476c6f62616c526f6f7443412e63727430420603551d1f043b30393037a035a0338631687474703a2f2f63726c332e64696769636572742e636f6d2f4469676943657274476c6f62616c526f6f7443412e63726c303d0603551d2004363034300b06096086480186fd6c02013007060567810c01013008060667810c0102013008060667810c0102023008060667810c010203300d06092a864886f70d01010b050003820101008032ce5e0bdd6e5a0d0aafe1d684cbc08efa8570edda5db30cf72b7540fe850afaf33178b7704b1a8958ba80bdf36b1de97ecf0bba589c59d490d3fd6cfdd0986db771825bcf6d0b5a09d07bdec443d82aa4de9e41265fbb8f99cbddaee1a86f9f87fe74b71f1b20abb14fc6f5675d5d9b3ce9ff69f7616cd6d9f3fd36c6ab038876d24b2e7586e3fcd8557d26c21177df3e02b67cf3ab7b7a86366fb8f7d89371cf86df7330fa7babed2a59c842843b11171a52f3c90e147da25b7267ba71ed574766c5b8024a65345e8bd02a3c209c51994ce7529ef76b112b0d927e1de88aeb36164387ea2a63bf753febdec403bb0a3cf730efebaf4cfc8b3610733ef3a4)])
 TRACE rustls::webpki::server_verifier > Unvalidated OCSP response: [48, 130, 1, 211, 10, 1, 0, 160, 130, 1, 204, 48, 130, 1, 200, 6, 9, 43, 6, 1, 5, 5, 7, 48, 1, 1, 4, 130, 1, 185, 48, 130, 1, 181, 48, 129, 158, 162, 22, 4, 20, 183, 107, 162, 234, 168, 170, 132, 140, 121, 234, 180, 218, 15, 152, 178, 197, 149, 118, 185, 244, 24, 15, 50, 48, 50, 52, 48, 52, 49, 57, 48, 54, 49, 57, 48, 54, 90, 48, 115, 48, 113, 48, 73, 48, 9, 6, 5, 43, 14, 3, 2, 26, 5, 0, 4, 20, 228, 227, 149, 162, 41, 211, 212, 193, 195, 31, 240, 152, 12, 11, 78, 192, 9, 138, 171, 216, 4, 20, 183, 107, 162, 234, 168, 170, 132, 140, 121, 234, 180, 218, 15, 152, 178, 197, 149, 118, 185, 244, 2, 16, 1, 61, 176, 58, 249, 172, 181, 69, 207, 245, 170, 242, 153, 249, 36, 200, 128, 0, 24, 15, 50, 48, 50, 52, 48, 52, 49, 57, 48, 54, 48, 51, 48, 50, 90, 160, 17, 24, 15, 50, 48, 50, 52, 48, 52, 50, 54, 48, 53, 48, 51, 48, 50, 90, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 51, 96, 121, 93, 173, 48, 70, 168, 241, 209, 171, 91, 209, 57, 92, 165, 27, 67, 9, 119, 41, 9, 201, 114, 10, 148, 13, 203, 171, 202, 1, 51, 44, 39, 182, 149, 182, 138, 159, 92, 61, 38, 22, 255, 208, 72, 210, 71, 97, 172, 140, 44, 135, 168, 174, 6, 24, 230, 44, 57, 108, 213, 43, 173, 63, 205, 128, 71, 210, 99, 126, 211, 184, 15, 55, 246, 36, 86, 155, 53, 45, 162, 30, 169, 94, 209, 220, 217, 57, 134, 69, 206, 11, 121, 40, 55, 253, 1, 54, 241, 155, 101, 41, 120, 117, 113, 196, 108, 250, 60, 168, 218, 43, 63, 101, 90, 89, 147, 209, 129, 198, 159, 225, 12, 82, 245, 216, 99, 43, 6, 97, 135, 157, 141, 131, 114, 179, 183, 63, 214, 128, 204, 232, 16, 114, 250, 35, 250, 12, 18, 140, 41, 221, 116, 20, 16, 202, 237, 41, 178, 231, 75, 120, 89, 62, 163, 55, 92, 216, 87, 237, 26, 167, 199, 150, 4, 199, 5, 22, 197, 51, 195, 214, 14, 139, 77, 54, 127, 78, 195, 124, 175, 162, 156, 254, 53, 122, 252, 190, 90, 153, 179, 171, 28, 96, 151, 4, 245, 222, 189, 95, 81, 236, 58, 134, 185, 43, 40, 29, 34, 40, 165, 195, 57, 76, 137, 99, 162, 13, 210, 127, 140, 170, 30, 95, 228, 213, 173, 113, 34, 61, 213, 190, 209, 7, 207, 177, 255, 176, 144, 14, 143, 216, 197, 236, 171]
Running Redlib v0.31.2 on 0.0.0.0:8080!
 INFO  redlib::oauth                   > [✅] Success - Retrieved token "eyJhbGciOiJSUzI1NiIsImtpZCI6IlNI...", expires in 86399
 INFO  redlib::oauth                   > [⏳] Waiting for 86279s seconds before refreshing OAuth token...
 DEBUG rustls::common_state            > Sending warning alert CloseNotify
05warmupsdelayer commented 5 months ago

Having a similar issue, except on Ubuntu Jammy. I took @05warmupsdelayer 's suggestion of building the image using the aforementioned Dockerfile. The container comes up as unhealthy , but the web UI is still accessible and usable. Docker Compose entry and container logs with RUST_LOG=trace are below.

Ha!

I didn't notice docker windows doesn't show heath for some reason...anyways...I updated my script above

change

healthcheck: test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8080/settings"]

to healthcheck: test: ["CMD", "wget", "--spider", "-q", "--tries=1", "http://localhost:8103/settings"]

and you should be good.

spectrapulse commented 4 months ago

As this hasn't been fixed in this repo as of yet I've decided to come up with a temporary solution and made my own image.

If anyone else would like to use it just pull from ghcr.io/kankerdev/redlib:latest (src at https://github.com/kankerdev/redlib)

It should work for individuals who have this or similar issues to #62, #74 and #81.

TrezOne commented 4 months ago

Can confirm @spectrapulse 's image works smoothly (not including the wget --spider health check).

Handrail9 commented 4 months ago

@spectrapulse want to thank you for building an image because my instance was down for over a month waiting for a fix. :rocket:

NovaCyntax commented 3 months ago

As this hasn't been fixed in this repo as of yet I've decided to come up with a temporary solution and made my own image.

If anyone else would like to use it just pull from ghcr.io/kankerdev/redlib:latest (src at https://github.com/kankerdev/redlib)

It should work for individuals who have this or similar issues to #62, #74 and #81.

This no longer works with the most recent build. Images on your repo will fail to load the homescreen unfortunately and must be updated. It's wild to me that this is the only thing I self-host that doesn't regularly publish builds to dockerhub or gchr. I appreciate you building an image even if it only worked for a short while.

spectrapulse commented 3 months ago

As this hasn't been fixed in this repo as of yet I've decided to come up with a temporary solution and made my own image. If anyone else would like to use it just pull from ghcr.io/kankerdev/redlib:latest (src at https://github.com/kankerdev/redlib) It should work for individuals who have this or similar issues to #62, #74 and #81.

This no longer works with the most recent build. Images on your repo will fail to load the homescreen unfortunately and must be updated. It's wild to me that this is the only thing I self-host that doesn't regularly publish builds to dockerhub or gchr. I appreciate you building an image even if it only worked for a short while.

The image doesn't seem to be broken on my end though and updated just fine with my automatic update mechanism...?

Are you on x86_64 (since my nodes run arm64)? I'll check the image in a little while and just recommend sticking to the older tag right now if it doesn't work (ghcr.io/kankerdev/redlib:v0.31.2) then I'll look into it in a few hours when I can.

It may also help if you could tell me how your image is deployed by your orchestrator and what orchestrator you use? (docker compose, docker swarm, k8s... etc)

spectrapulse commented 3 months ago

As this hasn't been fixed in this repo as of yet I've decided to come up with a temporary solution and made my own image. If anyone else would like to use it just pull from ghcr.io/kankerdev/redlib:latest (src at https://github.com/kankerdev/redlib) It should work for individuals who have this or similar issues to #62, #74 and #81.

This no longer works with the most recent build. Images on your repo will fail to load the homescreen unfortunately and must be updated. It's wild to me that this is the only thing I self-host that doesn't regularly publish builds to dockerhub or gchr. I appreciate you building an image even if it only worked for a short while.

The image doesn't seem to be broken on my end though and updated just fine with my automatic update mechanism...?

Are you on x86_64 (since my nodes run arm64)? I'll check the image in a little while and just recommend sticking to the older tag right now if it doesn't work (ghcr.io/kankerdev/redlib:v0.31.2) then I'll look into it in a few hours when I can.

It may also help if you could tell me how your image is deployed by your orchestrator and what orchestrator you use? (docker compose, docker swarm, k8s... etc)

The updated image still seems to work great on my infrastrucure and it does too on my x86_64 testing nodes. If it doesn't work you'll have to share more about your setup, the current image seems fine.

NovaCyntax commented 3 months ago

Interesting, enabling/disabling tailscale funnel/serve for redlib's port seemed to get it working again. Not sure why that happened.

halictuz commented 3 months ago

The arm64 docker version doesnt update since months. Its stuck on version 31.0

I usually use podman with docker-compose files. But it also does not update with docker itself.

Tested on raspberry pi4 with dietpi and server with AlmaLinux 9.4

It also happens that if you are subscribed to more than one subreddit you get that error on the default home page:

Couldn't send request to Reddit: error trying to connect: dns error: failed to lookup address information: Name does not resolve

Now it doesn"t work at all anymore. Error:

Failed to parse page JSON data: expected value at line 2 column 5

Worked fine, even with the old version for the last months, until today.

Edit: my guess is, reddit switched to their newer layout, it seems. At least I didn't had that until today.

NovaCyntax commented 3 months ago

Interesting, enabling/disabling tailscale funnel/serve for redlib's port seemed to get it working again. Not sure why that happened.

Never mind, now homepage works but posts don't, as the guy above mentions. I also can't visit subreddits. I'm guessing reddit has been moving things around the past day or two.

0x20Fearless commented 3 months ago

Also experiencing the:

Couldn't send request to Reddit: error trying to connect: dns error: failed to lookup address information: Name does not resolve

and now

Failed to parse page JSON data: expected value at line 2 column 5

spectrapulse commented 3 months ago

The arm64 docker version doesnt update since months. Its stuck on version 31.0

I usually use podman with docker-compose files. But it also does not update with docker itself.

Tested on raspberry pi4 with dietpi and server with AlmaLinux 9.4

  • image: quay.io/redlib/redlib:latest-arm # uncomment if you use arm64

It also happens that if you are subscribed to more than one subreddit you get that error on the default home page:

Couldn't send request to Reddit: error trying to connect: dns error: failed to lookup address information: Name does not resolve

Now it doesn"t work at all anymore. Error:

Failed to parse page JSON data: expected value at line 2 column 5

Worked fine, even with the old version for the last months, until today.

Edit: my guess is, reddit switched to their newer layout, it seems. At least I didn't had that until today.

It should work just fine and it did just work fine with my latest multi-arch image. With the exception of the new Failed to parse page JSON data: expected value at line 2 column 5 error that has started happening since a few hours ago but seems to be every instance now so I think Reddit changed something which broke the project. I've also heard that this is probably an issue at Reddit's side but it doesn't appear to be like that for me as the site itself seems to work just fine for me.

sigaloid commented 3 months ago

The new issue mentioned is #118 and is a fix that requires a change

spectrapulse commented 3 months ago

The new issue mentioned is #118 and is a fix that requires a change

Thanks! I force updated my downstream image to #119 and the change does seem to fix the issues.

Also, I don't like asking this but is there an ETA on the broken container images situation? I don't mind people using my downstream image as a work around as I'll commit to keep it functional until it is fixed here and wouldn't mind if you forwarded people to my image for the time being but it would be better if it ends up fixed here instead.

Krovatkin commented 3 months ago

@05warmupsdelayer

Alternatively, here's a Dockerfile that builds a redlib binary. Works just fine on aarch64.

FROM alpine:3.19

ARG TARGET

# Installing dependencies
RUN apk add --no-cache build-base git curl

# Install rustup and the rust toolchain
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
RUN rustup default stable

# Clone the redlib repository
RUN git -C /tmp clone https://github.com/redlib-org/redlib.git

# Go to redlib directory and build
WORKDIR /tmp/redlib
RUN cargo build --release

# Copy the built binary
RUN ls /tmp/redlib/
RUN cp /tmp/redlib/target/release/redlib /usr/local/bin/

# Clean up by removing dependencies and the cloned repository in /tmp
RUN apk del build-base git curl
RUN rustup self uninstall -y
RUN rm -rf /tmp/redlib ~/.cargo ~/.rustup

RUN adduser --home /nonexistent --no-create-home --disabled-password redlib
USER redlib

# Tell Docker to expose port 8080
EXPOSE 8080

# Run a healthcheck every minute to make sure redlib is functional
HEALTHCHECK --interval=1m --timeout=3s CMD wget --spider --quiet http://localhost:8080/settings || exit 1

CMD ["redlib"]
gmemstr commented 3 months ago

Something I'm curious about is the use of Alpine as the base - I've writen my own Dockerfile using a Debian base that also builds the project in the container itself, and while it's a bit larger I feel slightly more confident in its funtionality (personally I've been bitten by Alpine/musl DNS stuff a few times)

Dockerfile ``` FROM rust:1.78-bookworm as builder WORKDIR /usr/src/redlib RUN apt-get update && apt-get install -y git && git clone https://github.com/redlib-org/redlib.git . RUN cargo install --path . FROM debian:bookworm-slim RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* COPY --from=builder /usr/local/cargo/bin/redlib /usr/local/bin/redlib RUN adduser --home /nonexistent --no-create-home --disabled-password redlib USER redlib # Tell Docker to expose port 8080 EXPOSE 8080 CMD ["redlib"] ```

(I've pushed this to my own registry for amd64 and arm64, feel free to pull :))

spectrapulse commented 3 months ago

Something I'm curious about is the use of Alpine as the base - I've writen my own Dockerfile using a Debian base that also builds the project in the container itself, and while it's a bit larger I feel slightly more confident in its funtionality (personally I've been bitten by Alpine/musl DNS stuff a few times)

Dockerfile (I've pushed this to my own registry for amd64 and arm64, feel free to pull :))

The image which I've provided here before which works on all supported architectures uses Alpine as a base as it's just a slightly modified version of the previous Dockerfile which was part of this repo in earlier commits. Just like the stock image here in the repo.

halictuz commented 3 months ago

Something I'm curious about is the use of Alpine as the base - I've writen my own Dockerfile using a Debian base that also builds the project in the container itself, and while it's a bit larger I feel slightly more confident in its funtionality (personally I've been bitten by Alpine/musl DNS stuff a few times) Dockerfile (I've pushed this to my own registry for amd64 and arm64, feel free to pull :))

The image which I've provided here before which works on all supported architectures uses Alpine as a base as it's just a slightly modified version of the previous Dockerfile which was part of this repo in earlier commits. Just like the stock image here in the repo.

This docker image works perfectly fine with arm64/v8. Using right now. The home page error doesn't appear anymore. Thanks so far. I keep using this until I can update/pull the latest versions from the official repo.