mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-04-25 17:16:00 +03:00
[GH-ISSUE #1348] Announcement: Renaming init --setup to install + init --createsuperuser in upcoming release #3844
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#3844
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 @pirate on GitHub (Feb 17, 2024).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/1348
init --setupis confusing because the words mean similar things.I think I want to do something similar to
playwright'sinstall+--with-deps.I also want to install all dependencies into
data/lib/...and symlink them intodata/bin/.archivebox init--install|--install=system,local,extras,search,...: install package dependencies during init--createsuperuser: runarchivebox manage createsuperuserduring initarchivebox install [pkgname|tagname]If
[pkgname|tagname]is not specified, it will install everything by default.If a
[pkgname|tagname]is specified, it will try to install that package or packages matching that tag using any/all the providers it supports.--provider=apt|brew|pkg|pip|npm|cargo|...specify which dependency provider to use[provider options]e.g.archivebox install wget --provider=user --path=/hardcoded/path/to/wgetDependencies
gittags:system,extractorsconfig:{enabled: True, args: [], git_domains: 'github.com,gitlab.com,...'}providers:{'*': {name: 'git'}, apt: {}, brew: {}, pkg: {}, usr: {}}@bin_path():$ which git@version():$ git --version@is_valid():self.bin_path and self.version > 2.1.1@provider():$ which git && echo 'external' || (which apt | which brew | which pkg) || echo None.post_install():link_dependency(): $ ln -s {self.bin_path} data/bin/git.install(provider=self.get_provider): `provider.install(**self.providers[self.provider])yt-dlptags:local,extractorsconfig:{enabled, max_media_size, playlists, args: [--max-media-size=MAX_MEDIA_SIZE, --playlists=PLAYLISTS}providers:{'*': {name: 'yt-dlp'}, apt: {name: 'yt-dlp ffmpeg'}, brew: {}, pip: {}, usr: {}}ripgreptags:system,extras,searchconfig:{enabled, args}providers:{'*': {name: 'ripgrep'}, apt: {}, brew: {}, pip: {}, usr: {}}sonictags:system,extras,daemons,searchconfig:{enabled, host, port, username, password, args: ['-c', 'data/etc/sonic.cfg']}providers:{'*': {name: 'sonic'}, apt: {preinstall:}, brew: {}, cargo: {}, usr: {}}.post_install(): ifdata/etc/sonic.cfgnot present, download it from github.start():{self.bin_path} {args}@pid(): {pid: 1234, host: HOSTNAME, port: PORT}.stop():$ kill {self.pid}; sleep 30; kill -9 {self.pid}@is_up():test_sonic_connection(*self.pid)......
sys install:git,curl,wget,ffmpeg,ripgrep,sonic,nodejs,pip, fonts, etc.pip install:yt-dlp,gallery-dl,playwright+chromiumnpm install:singlefile,readability,mercuryProviders
aptsudo:True@is_available():$ (which apt).install(name: str, sources={}, install_recommends=True):@installed(names: List[str):pipsudo:False@is_available():$ (which pip) && python3 && pip3.install(name: str, pip_args='--upgrade')......
State directories
data/lib/{apt,brew,pkg,usr}/bin/...(symlinks to user-provided or system-installed binaries)data/lib/pip/venv/bin(python venv for local packages)data/lib/npm/node_modules/.bin(npm node_modules for local packagesdata/lib/cargo/bin/(cargo folder for local packages)data/lib/usr/bin/...(dir of symlinks to user-provided binaries)data/bin(all final binaries are symlinked here)data/etc(etc / config files)@pirate commented on GitHub (Feb 22, 2024):
archivebox installshould also respect the environment variables / config to only install the things that are enabled, but this is hard because it means it will behave differently inside/outside a data folder and that might be too much complexity.https://github.com/ArchiveBox/ArchiveBox/issues/1346
@pirate commented on GitHub (Feb 22, 2024):
I'm planning to use ansible for the new install system, which will provide:
generic:ansible localhost -m ansible.builtin.package -a "name=yt-dlp state=latest"(apt,brew,pkg, etc.)apt:ansible localhost -m ansible.builtin.apt -a "name=pkgname state=latest"brew:ansible localhost -m community.general.homebrew -a "name=pkgname state=latest"pip:ansible localhost -m aansible.builtin.pip -a "name=pkgname state=latest"npm:ansible localhost -m community.general.npm -a "name=pkgname state=latest"shell:ansible localhost -m ansible.builtin.shell -a "playwright install --with-deps chromium" --diffzfs:ansible localhost -m community.general.zfs -a "name=rpool/myfs state=present"docker:community.docker.docker_compose_v2cloudflare:community.general.cloudflare_dnsinventory: https://docs.ansible.com/ansible/latest/inventory_guide/intro_inventory.html#variables-in-inventoryhttps://docs.ansible.com/ansible/latest/dev_guide/developing_api.html
https://ansible.readthedocs.io/projects/runner/en/latest/python_interface/
@pirate commented on GitHub (May 18, 2024):
https://github.com/ArchiveBox/pydantic-pkgr
@pirate commented on GitHub (Sep 24, 2024):
Ok this is almost done! Most of this is now built in the new v0.8
devbranch.