Community
Chat Logs
Sunday, June 14, 2026
- bluehi phaleth
- phalethhi blue
- phalethis bun needed to run the website? https://pastequest.com/?b55864df229833ae#21oYrewhiVLj2Ct3kJm7jzpPRMvjDDKevHQm1vRBNZFU
- bluemise ERROR Failed to install tools: aqua:npm/cli@latest, npm:npm-check-updates@latest, npm:pnpm@11
- blueyou have no idea how much I hate mise
- phalethI don't have mise, is that needed?
- blueno
- blueand yes, I'm using bun right now for development, but it should work with pnpm too
- phaleththat means pnpx or whatever?
- blueWhile resolving: .@undefined
- phalethI do have pnpm
- bluewhat is that...
- phalethheh
- blueoh, nvm, the package is called like that
- bluelet me rename it to @repopack/web
- blueok, done. you can pull all the changes
- blueI just did `pnpm install`, and it worked
- phalethcool, now I get: PostgresError: password authentication failed for user "repopack"
- phalethor should I pull?
- bluegood. now follow the readme, it says you need a postgres db
- phalethI can just use pnpx I think
- blueyou can use pnpx
- phalethyeah, I do have postgres db, no clue why it does not connect
- bluedid you create a user repopack with password, or change .env.local?
- blueDB_NAME=repopack
- blueDB_USERNAME=repopack
- blueDB_PASSWORD=repopack
- bluePODMAN_SOCKET=/run/user/1000/podman/podman.sock
- blueSTORAGE_GIT=./storage/git
- blueSTORAGE_APPS=./storage/apps
- bluethe easiest is to just get devdb
- bluehttps://github.com/terrablue/devdb/releases/tag/v0.1.2
- nevetRelease v0.1.2 · terrablue/devdb
- bluethen run `./devdb x postgres@17 --name=repopack
- phalethnot sure about this https://pastequest.com/?99341d62d45c73de#3qHgkQ8faQU1yNRpDAprVC4Baz6x4QtVuJJbj7Yp6YCF
- phalethI already got the postgres db
- phalethI got rid of PODMAN_SOCKET=/run/user/1000/podman/podman.sock in the .env.local file, only TCP is needed
- blueoh ok, let me fixed that migrate
- bluefix*
- blueyou can pull
- phalethok
- phalethtrying to run it in dev mode fails https://pastequest.com/?577abfb267ab66cc#3BznToQup2t3YWHtgP328n9e4UzzP11pEG83dBzmknLo
- bluethat's weird, that file's not empty
- bluetry `npx primate`
- blueor `pnpx primate`
- phalethok
- bluehm, I'm getting the same error
- phalethdifferent error with npx https://pastequest.com/?0ac1d96d643fb320#FTuRJBerfc7X5Cjpri2fXJ2DCB5XzzBWWrMwoYhugnc7
- bluedid you pull the latest stuff?
- bluewell, bun appears to be reliably crashing
- bluemaybe it's just my computer though now
- phaleththat's just bun
- phalethyeah, pulled latest
- bluewell, it didn't crash yesterday, so I wonder what changed
- phalethnpm is slow today
- phalethnot responsive I mean
- phalethit's like everybody decided to do maintenance on this shiny sunday
- blueomg, mise is a TOTAL piece of garbage
- blueI just did `mise uninstall bun` and then `yay -S bun`, now it's working
- phalethI think bun, mise and all those shiny new tools just crash when the service they rely on gets unresponsive
- phalethcause they only consider the happy path
- blueyeah, it's all the same happy broken nonsense
- bluemise I've been angry at for a while though, it's literally a scam
- bluethe dude 'maintains' it and begs for donation, meanwhile everything isn't working
- bluebtw I'm smelling bun 2.0 or bun 1.4 now with the rust rewrite, it's being a PR circus with anthropic
- blueanyway, is repopack working for you?
- phalethI'd like to use the stable tools https://pastequest.com/?8fa5e741c0b2edf4#3Cs6B7MG637fKwExqUySLGUthrjGwehKdMdTGGDuPS5a
- phalethbut it seems like I have to install bun
- phalethno clue what package is that
- phalethtrying npm install --force
- blueyou can remove @plsp/svelte, it's not that important
- phalethok, got first app error https://pastequest.com/?dace3deaf1573fe7#AcsJcjtL1RHZrV47fmYu66KRt85ii4scMzurrpYBBXKm
- phalethlet me give you a link on how to setup the REST API connection over HTTP
- phalethblue: this is what the code should use, there is no need for unix socket https://gitea.repopack.app/repopack/provision/src/branch/master/podman/README.md#setup-podman-tcp-listener
- phalethit's cause podman has to run rootful
- phalethalso all podman commands have to be prepended with sudo
- bluebut we're not issuing any commands, we're using the API
- blue PODMAN_SOCKET: expected string, got undefined [plugin primate/server/live-reload]
- blueyou need to put it in .env.local
- phalethyeah, I know, but we have to use the API over TCP, not over unix socket, the link above shows how to set that up
- phalethotherwise there is no way to connect remotely and use rootful
- phaleththe API caller will not be priviledged and that's why it has to be a simple http client
- phalethPODMAN_SOCKET has to be replaced with REST_HTTP_URL or soemthing like that
- bluewe want to expose podman?
- bluealso, this setup is working for me with local unix socket on this computer, I don't think we need to replicate the secure setup on our computers, no?
- phalethit'll be behind haproxy
- phalethbut you are not running podman as rootful
- blueya I'm running it as user systemd on my comp
- phalethalso there will be auth
- phaleththe goal is to run as rootful and still not require the JS runtime to execute sudo commands
- phalethand just use any http client
- bluebut is this the goal with local dev as well? I'm not sure we'll have haproxy on our computers
- blueeventually it would be nice to test locally with *.repopack.local domains and a selfsigned cert, but this isn't at the top of my priority
- phalethnope, but the repopack app should still target TCP HTTP REST API of podman
- phalethso that it's deployable
- blueis your local setup unix or tcp?
- phalethTCP only, I didn't do any UNIX socket configuration
- phalethactually deleted that from the docs
- phaleththings being able to connect remotely means more flexibility and we will actually need connectivity over TCP, cause podman builds will not be happening on the same machine as where containers run
- phalethjust make that a default and only option
- blueyeah but I want to run podman rootless on my comp, can I still do that with tcp?
- blueI guess I can
- phalethif you modify the systemd unit file then sure
- phalethbut then you might not be able to test resource limits
- blueok, commit incoming
- bluechanged the env to PODMAN_HOST
- bluedone, you can pull
- phalethok, good
- phalethit works, looks good, very simple
- bluecool
- bluedid you manage to create an app & deploy?
- phalethnope, just created project
- phalethI guess I should read the readme
- blueah, ok
- bluebtw, I'm patching primate to read an env HOST / PORT variable if the user didn't set config.http.{host,port} explicitly
- blueI might even backport it to 0.39 because I'm testing whether I can deploy apps/svelte or any other app from primate's repo
- bluethe way it's done right now, every app gets a special port so they don't collide during testing
- bluebut I want to transition them to containers, so they can all use 6161 or just env.get("PORT")
- bluealso, I now have the problem that apps/svelte won't run in a container because the default host in primate is localhost
- phalethit reminds me of arch repo, cause you just have to push to it
- bluethat's why in apps/website, we have http.host: "0.0.0.0"
- phalethit will not let you create empty repo on the site and then git clone it
- blueI think you can clone it after you the create the project, you'll get an empty repo
- phaleththe clone button at top right switches to a different tab
- blueit's not wired at all
- bluelike, the functionality doesn't exist
- bluejust clone directly from "storage/git/NAMESPACE/PROJECT"
- phalethso this git remote add command seems to know the name of the project and namespace, but can it also figure out where the site is hosted? https://images4.imagebam.com/25/16/68/ME1DTXZ7_o.png
- phalethassuming that the ssh server is on the same host as the website app
- phalethwhich should always be the case
- blueyeah, it'll eventually figure it out
- bluefor now though, I'm testing with just locally accessing the bare repo
- blueso I did `git remote add ~/projects/repopack/storage/git/primate/primate`
- blueor acutally I think you need the name before
- blueso I did `git remote add local ~/projects/repopack/storage/git/primate/primate`
- bluethis will work, and be a bit faster locally than going over http
- blueor ssh
- blueyou can put the repos wherever you want for now, so you can set STORAGE_GIT to a location outside the repopack repo
- blueon the server they'll be on an fs mount, I imagine
- phalethI just went with the following
- phalethSTORAGE_GIT=./storage/git
- phalethSTORAGE_APPS=./storage/apps
- blueyeah, that works. in that case they're inside the location you cloned the repopack/website repo to
- phalethno idea what that means, could not find storage subdir being created
- blueit should be created
- phalethso anyway, I'm not sure about the ssh url
- phalethwhat's shown on the picture is not valid
- blueyes, it's just nonsense, ignore it
- bluefollow the readme
- bluein fact, let me update the repo
- bluereadme*, since it's outdated in that respect
- phalethah, ok, so there is no ssh communication yet
- phalethheh
- bluek, I've updated the readme
- blueand I just checked, when you create a new project, it should definitely create the storage/git directly
- bluedirectory*
- bluessh communication requires major shenanigans
- phalethok, the storage dir is there
- bluesince we need to move our normal ssh port to something else, and then configure ssh to pass to git
- bluegood
- bluenow you can add this local repo to primate's repo, git push local, create an app, and see the magic happen
- bluefyi https://github.com/primate-run/primate/commit/936731333293b02c2749af7f14f5f1f0b77f302f
- nevetcore: use HOST/PORT fallback for config.http · primate-run/primate@9367313
- blueI'm now gonna try to deploy apps/svelte on my local RP instance, and I think it's gonna finally work
- phalethnot sure I understand what to do here, I was thinking that I'd not need to touch server side repo, but that's what the readme is saying https://pastequest.com/?75fa6c310bb494de#6vpUa76irt7rVvf6j5RJxVJRwsUWeefhZaoGYnGJK74m
- blueyes
- blueyou're doing it wrong. those are bare repos
- bluewhat you need to do, is this
- phalethheh
- blueclone primate somewhere, `git clone https://github.com/primate-run/primate`
- bluethen enter that directly
- bluethen issue
- bluegit remote add local /home/user/repopack/website/storage/git/new-ns/new-prj
- bluethen do `git push local`
- blueand now you've got the entire primate repo inside your local RP instance, and you can play with it
- phaleththat makes sense, so the readme is confusing
- blues/directly/directory
- blueyeah, figures
- bluebtw when the app is building, you can click on the `Build image` line to expand it. same for `Write Containerfile`
- phalethtried to deploy 4 times, always fails the same way, no logs https://images4.imagebam.com/a6/0b/63/ME1DTZ9Z_o.png
- blueyay, it's working
- bluephaleth: https://gitea.repopack.app/repopack/website/commit/9bfab6010f6bd2248c0c0c046c5f8579a365758f
- bluenow I can deploy apps/svelte, too :)
- phalethdoing a git pull now and trying again
- blueI don't think it's going to matter, but could you change the exact app path to `apps/website`?
- blueotherwise we're gonna need to debug if your podman api is working fine
- blueone way to do that is this:
- bluehttp://localhost:6161/new-ns/new-prj/apps/podman
- bluedoes it show a bunch of json info or errors?
- phalethchanged the path and got same error
- bluewhat does that url give you?
- blueshould start with {"ok":true,
- phalethyeah, a json that starts with {"ok":true,
- blueand you have podman 5x, right?
- blueyeah, otherwise the info call wouldn't have worked
- blueok
- bluecan you go to /home/user/repoopack/website/storage/apps ?
- blueenter the directory there, should be projects/1
- bluethen enter apps/ and probably the 1 directory
- blueand then deployments, and the highest number
- bluedo you have a `build.log` there?
- phalethpodman version 5.4.2
- blueok, that's good
- phaleththe log only has this one line
- phalethPodman POST /v5.0.0/libpod/local/build failed: 404 Not Found
- phalethso maybe that's a newer API
- phalethI think, not sure, otherwise makes no sense
- phalethbut it'd be great if that error showed up in server side node logs
- blueyeah I think it was added later
- phalethyup, podman too old https://pastequest.com/?19b69d1205d29b10#8NxSAVR9VfRLuCuLLW1QFC58ctg738yX7ihSXQWyREaR
- bluehttps://gitea.repopack.app/repopack/website/commit/2c004238358d26096969ddaaaa03d0f6d6ae689a
- phalethbut don't worry about that, we need to get to podman 6.0 as soon as possible, cause there will be a fix that we need for REST API
- blueadded server logging
- phalethok, let me try
- phalethok, it's logging in the console now, nice
- blueyou did a v1.0 there though, try with v5.0.0
- blue$ curl -X POST \ "http://127.0.0.1:8080/v5.0.0/libpod/local/build?t=localhost/primate-site-runtime&localcontextdir=/home/user/repopack/provision/podman/deployments/primate-site/runtime&nocache=true"
- blueI converted apps/react, now trying to deploy that
- bluethis is so nice, it's discovering deployment-related bugs
- blue "build": "npm run clean && tsgo && cp src/types/{index,app}.d.ts lib",
- bluethis doesn't work inside a container properly, I guess since it assumes bash or whatever
- blueso need to make it two cp commands
- bluegreat, got apps/react running
- blueI now have apps/react, apps/svelte and apps/website running through RP all at the same time
- phaleththat still says Not Found, it's just old podman
- phalethI will have to figure out how to install latest podman anyway
- bluefyi, I'm using podman 5.8.3 here
- blueis podman 6 not released yet?
- phaleththat's latest
- phalethpodman 6 is release candidate atm I think
- blueoh nice
- blueRequired New Dependencies: Users must now use Pasta for rootless networking (replacing slirp4netns), cgroups v2, and SQLite (replacing BoltDB)
- blueNetworking Modernization: The Netavark networking stack has switched from iptables to nftables to align with modern Linux standards.
- bluehttps://fedoraproject.org/wiki/Changes/Podman6
- nevetChanges/Podman6 - Fedora Project Wiki
- bluehttps://github.com/podman-container-tools/podman/releases/tag/v6.0.0-rc1
- nevetRelease v6.0.0-RC1 · podman-container-tools/podman
- blue2 days ago
- blueanyway, we can switch to it once it's GA and arch packages it
- blueget the latest podman so you can tinker around with rp :P
- blueI'm gonna convert all primate apps so they're deployable via containers
- blueeventually, I want the command-line tool `rp` to be able to deploy locally via a locally configured podman, but to still use a repopack subdomain for reverse proxy and being reachable from the web
- blueso you can do `rp dev` and it opens a subdomain for you that you can enter into google oauth or whatever
- blueI used to use ngrok for this but they charge for a stable subdomain
- blueno reason not to give it for free, within the limited free plan
- bluethen I could finally test scld locally again
- phalethheh
- blueman I hate geoblocking
- bluetotally ruined the internet
- phalethok, got podman 5.8.2
- phalethwell, still getting the same error
- phalethI guess it's because of one of the podman dependencies and I've only updated podman
- bot<discord:blue> Ya
- bot<discord:blue> Get debian sid
- bot<discord:blue> https://packages.debian.org/unstable/podman
- botI Challenge Thee
- phalethsort of trying to do that
- phalethit's going to upgrade to latest kernel, will prolly break the fonts
- bot<discord:blue> Oh no
- bot<discord:blue> The Ubuntu community page is full of nonsense
- bot<discord:blue> "Debian is a volunteer project that has developed and maintained a GNU/Linux operating system for well over a decade"
- bot<discord:blue> More like three decades
- bot<discord:blue> Also who says GNU/Linux today other than pedantic buttholes
- bot<discord:blue> "Less dangerous, but still problematic behavior can be used as a teaching moment instead."
- phalethvery cool https://images4.imagebam.com/24/f9/98/ME1DU1FR_o.png
- bot<discord:blue> Why does everything sound like a soviet textbook
- phalethcan you expand that panel with build logs by default? so clicking on that is not necessary
- bot<discord:blue> Ya
- bot<discord:blue> Btw once it finishes building the logs might be red, I need to fix that
- bot<discord:blue> And after it finishes building you'll see real time stats on the right
- blueok
- phalethyeah, the logs at the bottom show
- phalethError: Podman GET /v5.0.0/libpod/containers/undefined/logs failed: 404 {"cause":"no such container","message":"no container with name or ID \"undefined\" found: no such container","response":404}
- blueyeah I know. if you refresh the page they'll show right
- bluebtw if you want you can create another app and deploy from apps/svelte :)
- phaleth50s to build the thing, not too bad since it's doing all that pnpm crap
- blueyeah, we need to optimise that but 50s is already great
- phalethok, so should I convert nevet docs to podman?
- bluewe need a deployment plan for it, that's what we need to work on
- bluelook into the plans directory
- bluethose plans are going to move soon into a db table so we can edit them live, but for now they're in plans/*.yaml
- phalethis that something custom or something podman specific?
- bluethe plans themselves are custom, the Containerfile are standard podman with variables
- phalethok
- phalethso we need containerfiles
- bluecheck primate_bun_v0.yaml and primate_bun_v0.Containerfile, I think you'll understand
- bluea repopack user can override the automatic detection of strategies by creating a `rp.yml` file
- blues/strategies/plans
- bluethen you put `plan: primate/static/v0` or whatever into rp.yml
- blueor I think I called that plan `node/static/v0`
- bluesince I needed a node builder and a static runner for primate/openapi
- blueso essentially, just to understand the system, the naming convention is BUILDER/RUNNER/VERSION
- blueso `primate/bun/v0` builds primate and runs it on bun, `node/static/v0` uses node to build a static website (like the primate/openapi repo)
- bluewe'll also have 'default' plans like `primate/v0`, which is just build with node, run with node
- bluethis will be the default plan for primate projects unless you choose another plan (bun or deno), by specifying it explicitly in your rp.yml, or by selecting it during the plan detection phase, if more than one plan was detected
- bluecurrently the detection strategy just takes the first thing that matches the requirements, so you'll see the primate website is deployed by `primate/bun/v0`
- bluebut technically `primate/deno/v0` matches as well, and in this case, since apps/website has no rp.yml stating a preference, the ui will offer you to choose (and remember your choice, if you wish)
- bluealso, in the ui, when you create an app, I'll add a field 'deployment plan'. default will be "detect", but you'd be able to also manually select a plan
- blueit is my intention to version those deployment plans so they can work with different major versions of a framework/tech, if both are still supported
- bluewe're gonna have next/v0, sveltekit/v0, etc., possibly with deno/bun variants
- phalethdocker.io/nginxinc/nginx-unprivileged:alpine is too big, can I update that Containerfile?
- blueyes, you should in fact
- bluejust push it back
- blueafter you update
- bluethe plans and their containerfiles aren't gonna be in git for long. as I said I plan to add a DEPLOYMENT_PLAN table and then we'll be managing it under an /admin path
- bluebecause I don't want to redeploy the entire repopack app just to change a plan
- blueI also eventually would like users to submit their own plans, or to be able to use custom plans for their apps
- blueall of that kind of requires a database
- bluehowever, I think keeping a few plans as a way to seed the db when you're just starting locally is a good idea
- blueanyway, for now just edit in git
- bluephaleth: build image now autoexpands, logs / stats should autowire when build is finished now
- blueso you shouldn't need to manually expand the build image step or refresh the page after the build anymore
- phalethI've opened up a PR? can you check your mailbox?
- phalethnice
- blueya
- blueyup, got three emails
- bluedone, merged & deleted branch
- blueonce we deploy RP on repopack.com, we can use it to manage repopack/web itself, it'll be great
- phaleththat's good
- bluebut we still have a lot to do with ssh / haproxy
- blueand I haven't written any auth code
- phalethyou can take a look at how gitea is proxied in haproxy.cfg, it'll be the same for RP except port 22 will be used
- phalethfor ssh I have no clue, last time you mentioned some lib
- phalethdoes not matter I guess as long as it's at the app level it's all fine
- blueyeah, we need to be able to cleverly check permissions
- blueso if you do `git clone ssh://git@repopack.com:repopack/web`, we need to be able to check first using the db if you have the permission to do
- bluethe path to get to the check itself is clear: pubkey -> user -> acl
- bluebut the difficult part is doing this before we let you clone/push/pull
- bluethis is where I used the `ssh2` package before
- bluelet me see if I can find the code somewhere
- phalethcan you take a look at the provison repo to podman/deployments/theanswerisc/nginx dir and can you tell how to include those additional files next to the Containerfile there?
- blueya
- bluehttps://gitea.repopack.app/blue/adaptivecloud
- bluehere is the old code
- bluehttps://gitea.repopack.app/blue/adaptivecloud/src/branch/master/server/app.js
- bluethis is the key part, essentially
- blueit extracts the pubkey from the ssh request (`client.public_key`), and then passes it to the app alongside the project id, the app can then decide whether to allow the user or not, and whether to trigger any hooks after a push
- blueanyway, gonna look at the provision repo
- blueah I see, you have nginx.conf and proxy_params
- bluethose are mostly about passing to fly, no? we won't be having that anymore
- bluethe question though, how to include additional files in a build, is valid
- phalethyeah, also I'm not sure how to handle passwords
- blueone possibility we have is to not put the plans in the db
- bluebut rather in a different repo, say repoack/plans
- blueand the repopack app periodically syncs them or whatever
- bluethat solves the additional files issue
- blueyou just have a dir, `primate_deno/v0/`, inside you'll have plan.yml, Containerfile, and any additional files you need
- bluein fact this is something we could do right now by restructuring the `plans` dir a bit
- bluethe problem is really during development, when you iterate quickly on the plans. I think in production it'll be okay
- bluepasswords/secrets we can inject into Containerfiles
- blueand the user can define them on the ui, probably
- phalethI think it's best to have everything in db to not have more than single data source
- bluethat's fair, remains the question how to deal with additional files
- bluealso having the plans versioned in git is perhaps not bad
- phaletheach containerfile can have many additional_files
- phalethand they are just blobs
- bluewhat kind of db column would that be?
- phalethsome binary
- bluecould be another table
- bluedeployment_plan_files
- phalethyeah, for sure, another table cause of the one to many relatioship
- blueya
- blueok, that sounds good. so we're gonna have the deployment_plan table with plan: p.json and containerfile: p.string
- blueand then deployment_plan_files with deployment_plan_id: p.u32, contents: p.blob
- blueyou only need the extra files if a plan is selected, anyway. so for the initial detection you don't need the related table
- blueI think for performance, the deployment_plan table will also have `family: p.u8` or so
- blueso the package_json family is 1 and so on
- bluethe purpose of the family is just for detection. so if you have a package.json file in root, we only look in plans belonging to this family
- phalethheh p.u8
- bluethose won't be many families. package_json, pom_xml, composer_json, makefile, build_zig
- bluecargo_toml etc.
- phalethnot sure, there are many software technologies
- bluek, p.u16 then
- bluemight be more than 256... but not more than 2^16