mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-25 17:16:00 +03:00
[GH-ISSUE #916] Feature Request: Consider providing an official AppImage #569
Labels
No labels
expected: maybe someday
expected: next release
expected: release after next
expected: unlikely unless contributed
good first ticket
help wanted
pull-request
scope: all users
scope: windows users
size: easy
size: hard
size: medium
size: medium
status: backlog
status: blocked
status: done
status: idea-phase
status: needs followup
status: wip
status: wontfix
touches: API/CLI/Spec
touches: configuration
touches: data/schema/architecture
touches: dependencies/packaging
touches: docs
touches: js
touches: views/replayers/html/css
why: correctness
why: functionality
why: performance
why: security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ArchiveBox#569
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @noctux on GitHub (Jan 24, 2022).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/916
Type
What is the problem that your feature request solves
ArchiveBox as a software bundles multiple "moving pieces", including a Django website, several node-js based services, youtube-dl, etc.pp. This makes maintaining an installation, especially on fast moving rolling-release distributions a time-consuming task.
The proposed solution to this is running the docker container, which among other things requires root access (so it does not work e.g. on my universities shell account) and a complicated setup.
It would be nice if there was a simpler way to maintain a personal archivebox, while, like the Readme states, "avoid polluting your host system with extra dependencies".
Describe the ideal specific solution you'd want, and whether it fits into any broader scope of changes
AppImages allow to pack an application, along with its dependencies, into a single file binary. This binary contains a squashfs-based filesystem image of your application which will be mounted and then used to run your app.
Thus, distributing is (ideally) as simple as downloading the binary from the official release page, setting it executable, and be ready to run.
Cons:
Pros:
How badly do you want this new feature?
I've toyed around with that idea last weekend and used pkg2appimage (in version pkg2appimage-1807-x86_64.AppImage) to create an appimage for archivebox:
The image can then be built using
ARCH=x86_64 ./pkg2appimage-1807-x86_64.AppImage archivebox.yml. Currently, the AppImage has a size of approx. 115M.I've currently used a Debian Bullseye as the build host for now (because it was at hand, I've needed to "apt get install python3.9-venv npm" on the host) and tested on Debian Bullseye and a current ArchLinux installation (I've tested
initandadd, including youtube/github links). I've not included ffmpeg or chromium into the AppImage so far, because I believe that those are 1) optional dependencies and 2) better maintained outside of the appimage by the regular distributions package manager as their attack surface makes regular, high frequency updates sort of mandatory.The AppImage was able to pick up and use the distribution binaries of these tools on both tested distributions.
The only bug that I've walked into was for the openssl employed by youtube-dl. As the location of the
SSL_CERT_FILEdiffers a bit between distributions, it was necessary to run the appimage asSSL_CERT_FILE=/etc/ssl/cert.pem ./archivebox-0.6.2.glibc2.29-x86_64.AppImage ...on ArchLinux. In theory, one could include a cert-file into the AppImage. But once more, I believe it's best to use the host systems information there as the user might have certain custom SSL-trustlevels configured.Thanks for reading this far and for developing and maintaining archivebox in general! So what do you think? Any interest? Please note that this is the first AppImage I've built, but I'll do my best to answer any questions or improve the AppImage if desired :)
Best regards
Simon
@pirate commented on GitHub (Jan 24, 2022):
I've never used AppImage before, and probably don't have the time to maintain another release channel (we already have too many for me to handle comfortably). That being said, if someone contributes a Github Actions pipeline that autobuilds and releases an AppImage on new release tags, then it's a minimal additional burden for me and I'd be willing to merge it.