Community
Chat Logs
Saturday, June 13, 2026
- bluehi phaleth
- bluephaleth: https://gitea.repopack.app/repopack/website/src/branch/master/README.md
- bluerepopack can now deploy the primate website
- bluea lot of it is based on your work
- bluehttps://gitea.repopack.app/repopack/website/src/branch/master/strategies
- blue'strategies' are the RP mechanism for autodetection of deploy conditions
- bluethe strategies have requirements which, if fulfilled, they are selected. they then gather info and feed it into a containerfile
- bluecurrently there is only the primate/deno/v0 strategy so there's no real mechanism/heuristics to select a strategy, and also the strategy is saved to disk, which is going to moved to a db table
- bluethe readme should contain all you need to try it out locally, I'd be happy if you could tell me if that works for you as well
- bluethe next step should probably be to databaserise the strategies, and then add primate/bun/v0 and see how to meaningfully select between. since the primate repo has no particular hints as for its preferred strategy, it would likely use the `primate/v0` which would be a node strategy in the future
- bluealternatively, in the step PICK_STRATEGY, the user will be offered a few strategies and can pick one, and set his preferred strategy for the future
- blueI'm still working out the best ergonomics for this, obviously we want the default to go as smooth as possible
- bluethere are many open items to deal with, such as subdomains to ip mappings, so programatically dealing with haproxy, show container logs, and much much more, but it's a good start
- bluemy idea for the strategies is that they're be admin-managed for now (so by us), but later users would be able to submit strategies, or use custom strategies in their own namespaces/projects
- bluethey'd be*
- blueonce we got the strategies in the DB I'm going to start branching out and trying more apps. I'm particular excited about trying get dreamreal's bytecode.news online *without* relying on his Dockerfile or docker-compose.yml
- bluesince his project has a pom.xml using `org.springframework.boot` as parent, I was thinking of creating a `spring/v0` (in the pom.xml family) strategy and seeing how far I can get with that
- phalethhi blue
- bluehi
- phalethsounds great
- blueya
- phalethsince I'm on debian it's tricky for me to test that locally, I should install archlinux on VBox, not sure when
- phalethtoo much stuff is happening
- bluehow do you mean
- bluebtw, you don't specifically need arch for this, I think
- blueI just checked the readme and you just need podman really
- phalethbytecode.news deployment is documented for systemd-nspawn, shouldn't be too hard to make Containerfiles for podman out of that, what I don't remember is how to do container linking
- phalethpodman on debian is outdated
- blueoh
- blueyeah, that's the next thing we're gonna have to tackle, multi-container setups
- bluebytecodenews has the java backend, postgres db, then next frontend and I think some mail service
- phalethit's just like podman network is already there, how to give each container it's IP is also documented, so it's now only a configuration problem
- bluejava backend is easily detectable and deployable, postgres db can be inferred from the pos.xml deps, the next frontend and the mail service are gonna be harder
- phalethfor example the app server of bytecode.news needs the IP of the db
- blueyes
- phalethI don't actually remember how bytecode.news app server is cofigured, but I'm pretty sure I've documented that for systemd-nspawn
- blueso we have a few options I think. we can define virtual host names for the network, I believe, so you don't have to work with ips. or we make the ips available as ENVs
- blueI remember virtual host names were a pain for nspawn, but should be possible with podman
- blueENV variables I haven't done yet in RP
- bluebut you'd just add them over the ui
- phalethdon't worry about vhost for podman, it's doable but also pain, the network for podman is internal
- phalethyou can see how that is done from primate website deployment doc
- blueyeah
- bluesome of the things we'll be able to figure out from .env.default
- bluefor bytecodenews for exapmle, it's DB_URL=jdbc:postgresql://localhost:5432/nevet
- phalethyeah, I think that's documented in the provision repo somewhere in nspawn dir
- bluethat, combined with the pom.xml dep, indicates a postgres container
- blueso we spawn up a postgres container put its connection string under DB_URL
- bluewhich for a spring framework app, should be `jdbc:postgresql://`
- blueand the hostname
- phalethpodman 5.8.3 is out, can I reboot the VPS?
- phalethbye bye blue
- phalethjust ask to reboot the VPS in irc and it already does that
- bluephaleth: done
- phalethcool
- blueso the point I was making is this
- phalethcontainers didn't start automatically
- blueoh
- bluein the bytecode.news repo, they have a docker-compse.yml but also an env.default
- phalethsudo podman start --all
- phalethhad to do that manually
- bluewe have all the data we need to autogenerate a deployment, I think
- bluewhy didn't they start automatically?
- phalethoh, you wanna autogenerate deployment
- phalethno idea, systemd is buggy
- blueyes
- bluethat's what I'm already doing for primate website
- bluethe deployment strategy isn't specific for primate website, it's for primate in general
- bluein the case of primate, the heuristics aren't that complex, it's detecting 'primate' package.json and looking for config/app.ts or config/app.js
- bluethis doesn't have to work for 100% of repositories, but it'd be great success if it works for 80% of them
- bluewe're gonna craft strategies like wordpress/v0, nextjs/v0, and they're gonna detect and deploy
- blueand strategies belong to families based on a detected file in root
- blueprimate/deno/v0 is a strategy in the family package_json
- bluewordpress/v0 would be a composer_json strategy
- bluesome things will be hardcoded, others detected. wordpress always uses mysql so we don't need to detect that
- phalethin provision repo take a look at nspawn/containers/nevet
- phalethand also nspawn/containers/wp-nginx
- phaleththe vhost and systemd stuff can be ignored
- blueyeah
- bluethis "Allow connectivity from specific machine." step could be a real pain in the butt
- blueanyway, we'll get to the bridge when we cross it. multi-container setups are complex
- bluemy base idea is to delegate into substrategy
- bluehttps://gitea.repopack.app/repopack/website/src/branch/master/strategies/primate_deno_v0.yaml#L30
- bluethis "link: database: detect" does nothing right now (and is anyway irrelevant for primate website)
- bluebut ideally, it should be able to detect a database requirement, create a container and link it
- bluein primate's case it is easy: do we have a "@primate/postgresql" dep. though this is specific to primate and I hope that the database substrategy for package_json family could be general
- blueanyway, most of the real complexity in RP is in those strategies and the generation of Containerfiles and containers
- bluenext I'm going to do hatchling or scld or just primate/bun/v0 so I can see how easy it would be switch back and forth between deno and bun
- bluewe're also going to have a command line tool `repopack` over npm, so you could do `repopack deploy` from the root of your repo
- bluebut that requires login etc., couldn't bother with that mess just yet
- bluefor now, see if you can get a newer podman on debian or maybe arch on a virtual machine. would be good to know if this works well for you locally too
- blueafaik you only need some version of podman 5, not the latest
- phalethpodman does have internal dns, so assigning ip addresses to containers might not be necessary
- phalethit's just about trying it
- phalethonly podman networks are needed
- blueya
- phalethI'll try later, pretty sure I already don't understand :D but too busy with other crap right now
- blueno worries, if you follow the readme, it should work
- blueotherwise ask here or in #repopack
- blueI'm off to the store, bbl