redlib icon indicating copy to clipboard operation
redlib copied to clipboard

🐛 Bug Report: not able to use v0.31.2

Open 05warmupsdelayer opened this issue 1 year ago • 10 comments

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!

05warmupsdelayer avatar Mar 20 '24 14:03 05warmupsdelayer

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.

semyonsh avatar Mar 21 '24 20:03 semyonsh

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. 👍

05warmupsdelayer avatar Mar 21 '24 23:03 05warmupsdelayer

: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.

sigaloid avatar Mar 22 '24 14:03 sigaloid

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

0x20Fearless avatar Apr 21 '24 10:04 0x20Fearless

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"

05warmupsdelayer avatar Apr 22 '24 13:04 05warmupsdelayer

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

TrezOne avatar Apr 24 '24 01:04 TrezOne

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.

05warmupsdelayer avatar Apr 24 '24 01:04 05warmupsdelayer

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.

spectrapulse avatar Apr 30 '24 12:04 spectrapulse

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

TrezOne avatar Apr 30 '24 14:04 TrezOne

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

Handrail9 avatar May 11 '24 07:05 Handrail9

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.

NovaCyntax avatar May 30 '24 03:05 NovaCyntax

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 avatar May 30 '24 08:05 spectrapulse

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.

spectrapulse avatar May 30 '24 12:05 spectrapulse

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

NovaCyntax avatar May 30 '24 13:05 NovaCyntax

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.

halictuz avatar May 30 '24 15:05 halictuz

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.

NovaCyntax avatar May 30 '24 17:05 NovaCyntax

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

0x20Fearless avatar May 30 '24 17:05 0x20Fearless

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.

spectrapulse avatar May 30 '24 21:05 spectrapulse

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

sigaloid avatar May 30 '24 22:05 sigaloid

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.

spectrapulse avatar May 30 '24 22:05 spectrapulse

@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"]

Krovatkin avatar May 31 '24 07:05 Krovatkin

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 :))

gmemstr avatar May 31 '24 10:05 gmemstr

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.

spectrapulse avatar May 31 '24 10:05 spectrapulse

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.

halictuz avatar May 31 '24 12:05 halictuz