31 Commits

Author SHA1 Message Date
Mitchell Syer
7faeea249b Install CURL 2025-11-08 20:17:18 -05:00
renovate[bot]
d588eadf36 Update eclipse-temurin Docker tag to v25 (#184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 20:00:26 -05:00
Constantin Piber
bf45d9f6b1 Specify absolute paths for copying libs (#192) 2025-10-17 13:40:42 -04:00
Constantin Piber
29ee3410bc Improve image size and cachability (#165)
* Merge basic install layers

* Move `TACHIDESK_RELEASE_DOWNLOAD_URL` to where it's needed

This improves cachability, because the `ARG` taints all layers following
it. Since we change this arg for every release, the whole container had
to be rebuilt and redownloaded, when only the layer with the actual jar
file needs it.

* Move `ARG`s to the latest layer we can

`ARG`s taint every layer following, so move the `LABEL` to the last
layer, and the JAR download to the second-to-last, allowing for caching
of every layer except those two.

* Merge user creation layers and move `chmod`

The `chmod` needs to be after all copy and download if we want to avoid
permission problems (previous commit was not functional at runtime due
to insufficient permissions). This way, the files will be owned by the
correct user, and readable by all, while not creating unnecessary
layers.
2025-09-09 18:48:08 -04:00
Constantin Piber
ae620966e4 Publish system certs to java certs (#164) 2025-09-08 11:06:59 -04:00
renovate[bot]
8629366397 Update eclipse-temurin Docker tag (#153)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 15:30:36 -04:00
Constantin Piber
e7b1b6b21e Set HOME to avoid default "/" (#142) 2025-07-06 12:49:05 -04:00
Constantin Piber
ea7a79e50a Switch to xvfb-run instead of manually calling Xvfb (#141)
This should ensure it always finds a display number. It also makes sure
to properly kill `Xvfb`, which we did not do before.
2025-07-06 12:48:38 -04:00
Constantin Piber
5aa35914a5 C: handler for abort (#135)
* C: handler for abort

CEF will kill the thread if the GPU process cannot be created. This
brings down Suwayomi with it, so instead just kill the thread and inform
Java about the exception.

* Two-stage build to download an build catch_abort

Building JNI extensions requires JDK, but we don't need it at runtime,
so create a build-step based on JDK, then copy the built binary over

* Add catch handler to github action
2025-06-21 12:29:59 -04:00
Constantin Piber
9844dbcde3 Download JCEF at docker build step (#132)
* Add `LD_PRELOAD` to startup script

Closes #131

* Script to download and extract a JCEF release

Closely mirrors what KCEF does, but written in glorious AWK

* Call kcef_download and link downloaded JCEF where Suwayomi expects it

The script downloads JCEF into /opt. Link this folder at runtime into
the data folder where Suwayomi expects it. This allows us to easily
bundle the predownloaded release without modifying Suwayomi startup.
Move `LD_PRELOAD` down a bit to avoid warnings about preloading
libcef.so before the symlink exists.

* Add KCEF url to workflow to embed JCEF into container
2025-06-20 12:38:23 -04:00
Constantin Piber
d037f190e7 Merge builds again, use BUILDPLATFORM to decide KCEF (#130)
* Merge builds again, use BUILDPLATFORM to decide

* BUILDPLATFORM -> TARGETPLATFORM
2025-06-12 15:11:36 -04:00
Constantin Piber
db1d8b99a1 Remove KCEF from unsupported containers (#129)
* Introduce Build arg to include KCEF or not

* GH CI separate containers where KCEF is not supported
2025-06-12 14:26:16 -04:00
Constantin Piber
25c619a9fe Support KCEF (#127)
* Support KCEF

Install native dependencies required by JCEF
Sets up JNI libraries as required by the browser process
Launch Suwayomi in a XVFB environment to fake X11

* Copy libraries to home folder instead

Otherwise, other architectures are not supported

Search path is :
[/usr/java/packages/lib/libnativewindow_awt.so, /usr/lib64/libnativewindow_awt.so, /usr/lib64/libnativewindow_awt.so, /usr/lib/libnativewindow_awt.so, /usr/lib/libnativewindow_awt.so, /home/suwayomi/libnativewindow_awt.so, /home/suwayomi/natives/linux-amd64/libnativewindow_awt.so]
2025-06-12 11:37:54 -04:00
renovate[bot]
cad70c2159 Update eclipse-temurin Docker tag to v21.0.7_6-jre-noble (#121)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 16:24:58 -04:00
renovate[bot]
f1b1682672 Update eclipse-temurin Docker tag to v21.0.6_7-jre-noble (#113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 11:08:16 -05:00
Mitchell Syer
2080dd971b Delete original Ubuntu user 2024-11-21 03:36:41 +00:00
Mitchell Syer
a64db946e8 Switch to Ubuntu Noble and add RISC-V64 2024-11-21 03:31:52 +00:00
renovate[bot]
0d042358de Update eclipse-temurin Docker tag to v21 (#109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-16 14:49:19 -05:00
schroda
d93e8c3c1a Overwrite server.conf settings only for provided env vars (#76)
* Overwrite server.conf settings only for provided env vars

Currently on every start the whole server.conf file gets replaced which causes any changed settings during runtime to get lost

* Fix readme formatting

* Add "webUIEnabled" env variable

This is the only setting that can not be changed via the UI

* Remove default values from readme
2024-01-21 11:57:59 -05:00
Chance Zibolski
81ee2a71e2 Set user.home property and remove /etc/passwd modifications (#75)
If we explicitly set the user.home property, then Java doesn't consult
/etc/passwd to determine $HOME, fixing the problems that necessitated
updating /etc/passwd in the first place.

Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
2024-01-19 17:05:07 -05:00
Chance Zibolski
fa96e50161 Support running as alternative UID/GID (#74)
Because we use the Java user.home property to get the default
configuration directory, there needs to be an entry for the correct user
in /etc/passwd. For this to work with arbitrary UID/GID, that means
updating /etc/shadow dynamically based on the UID/GID in the container
before starting the application.

Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
2024-01-18 20:10:10 -05:00
Nogweii
b16bab9098 Fix a few bugs in the new workflow
1. Typo in the preview repo name.
2. Combined the dry-run fail message into the test step
3. Converted the release metadata step to use jq
4. Removed redundant information from the container labels
2023-05-29 16:56:54 -07:00
Nogweii
3e54375d4f Move startup_script.sh back into scripts/ 2023-05-29 15:49:14 -07:00
Nogweii
146da91296 Rewrite the startup script to use envsubst 2023-05-20 18:42:20 -07:00
Nogweii
77f891d439 overhaul the workflows 2023-05-20 18:11:04 -07:00
Mosei
1db28e2149 Update Dockerfile 2022-11-17 11:29:20 +05:30
Mitchell Syer
1ba7b279bb Change default DockerFile 2022-11-17 04:36:15 +00:00
Mosei
d9551cff2f Update Dockerfile 2022-06-22 02:29:09 +05:30
Mitchell Syer
bcee5bd974 java11 test 2022-06-21 15:42:13 -04:00
Mosei
1f7bd52fdc Update Dockerfile
Update tachidesk server repo link
2021-09-14 00:00:05 +05:30
arbuilder
304bcbd659 Initial commit 2021-09-10 00:43:54 +05:30