ButtCloud dev diary
grant proposal: %HqwAslt...
GitHub mirror: https://github.com/buttcloud/meta/blob/master/diary.md
grant proposal: %HqwAslt...
GitHub mirror: https://github.com/buttcloud/meta/blob/master/diary.md
i started early!
buttcloud/meta
repo to store any meta information (including these dev diary entries)ssb-viewer
and git-ssb-web
were non-trivial to install in typical environmentsbuttcloud/butt-landing
scuttlebot
into buttcloud/butt-peer
pino
, to try and have a consistent logging system across servicesbutt-peer-server
and one for butt-peer-client
buttcloud/butt
as docker-compose.yml
of peer server, landing server, and nginx proxybutt-peer-server
and butt-peer-client
to not use node
user, easier to start with default root
usernode
user, needed to create volume in Dockerfile
then mount external volume at same pathbutt-landing
to auto re-connect to sbot, so it doesn't error when sbot is not yet updocker-compose.yml
v3 not longer supports depends_on: condition: healthy
/^v[0-9.]+$/
, docker tag is samebuttcloud/butt
working!buttcloud/buttcloud-provider
@Karsten shrug, i've had bad experiences with Kubernetes and i'm afraid of Mesos. i'm familiar with Docker, i like the slow development towards a set of orthogonal systems, i'm not a fan of the blind hype towards the new generation of deployment systems. what's your experience like with these systems?
is that FB picture for REALZ?
@Connor this diary is for serious grant updates ONLY, no subtle butts here!
context: to be clear, i want to have fun with this grant, so this diary will include subtle jokes like a Facebook login. please feel free to get amongst!
yay more progress on the provider app!
in the upcoming version of Patchwork, you should see a video embed above.
in the meantime, below is a normal blob link: 2018-04-17-buttcloud-landing.webm
redux-bundler
node-resque
)mjml
oh also, emojis!
back to the infra side, during breakfast this morning i finally figured out why buttcloud/butt
was failing!
i had a hunch that it had to do with the address that sbot
was binding to. i configured host
as example_butt-peer-server
, since that's how the Docker service was to be identified within the Docker network. but still, the health checker inside the service couldn't find it. i changed this to 0.0.0.0
and it works!
did the same for the landing service. now the stack comes online, you can curl -H "Host: example.butt.nz" localhost
and get the output from the landing page associated with example.butt.nz
(proxied by traefik
).
next i added a custom plugin to butt-peer-server
that allows you to configure externalHost
, in case it differs from host
. this means we can bind to host
(like 0.0.0.0
) but advertise our public multiserver address as example.butt.nz
(like for invites).
then, on a whim from @mischa, i went back to buttcloud-provider
to swap redux-form
for final-form
, easy as.
made up some issues, want to step back to think about the next steps from here.
oh also, have yet to mention...
i've accepted @austin to be my "apprentice" for the next 3 months of the ButtCloud project.
This might be a bit of an odd proposal, and assuming you get the funding you need and decide to continue on with it, I was curious to know if you'd be willing to take on an "apprentice" during the project to help with code, documentation, etc. In exchange I could contribute an additional $500(USD)/month over a 3 month period for a total of 1500 USD to help fund the work (I could pay in crypto or cash, whatever is easiest). I would want NO stake in whatever business you'd like to establish moving forward. What I'm really looking for is a learning opportunity in a real world project with an adviser who can provide feedback on the work that I'm doing. I'm a self-taught NodeJS developer, but having never had a "real" development job, no one has ever reviewed my work or provided any feedback, so that's something I'd really appreciate.
i'm personally honored that anyone would give me their attention as if i'm a worthy "master", i'm already impressed by what's happened so far, looking forward to see how this progresses!
made the ButtCloud logo!
catching up on my diary!
some days are missing because partying at chur burn, doing other Root Systems work, doing a contract with @Mischa one-day-per-week, and bringing home a cold.
tinyify
: https://github.com/browserify/tinyify/issues/10buttpub*
or butthub*
, to standardize language: https://github.com/buttcloud/meta/issues/7butthub-provider
: https://github.com/buttcloud/butthub-provider/pull/11docker-machine
to create a local swarm across many machinesbuttpub
working, now across multiple virtual machines docker-up
: opinionated glue to manage our Docker swarmcontinued with docker-up
cb => {}
) based async flow control library in ./util/async.js
, maybe will publish as callstep
or flowstep
or somethingdocker stack *
functionality, that's implemented in the Docker CLIJust tested the demo -- looking great!
It has a nice look to it, simple and minimal
thanks for trying out the demo @ike @moid, good to hear it's okay!
Not sure where it's at, but I tried the demo. It captured my data, sent me an email, I clicked in the email and was taken to the setup step and a blank page.
@moid sweet, that's the expected behavior right meow!
more docker-up
, getting close to v1
!
next up (notes to self):
gotta work with @Mischa on another contract meow, then Art~Hack!
butthub-provider
: https://github.com/buttcloud/butthub-provider/pull/13docker-up
in the previous entrydocker-up/util/async.js
as callstep
, wrote up a splash of documentation docker-up
: add basic integration and unit tests using ava
, clean up log and config wrappers using composable callsteps: https://github.com/buttcloud/docker-up/commit/29655b561b781331fc4b3a2455ea15e7360bb111butthub-provider
: look into adding integration tests using codecept
ssb-pub
for TickTack: https://github.com/ahdinosaur/ssb-pub/pull/10 butthub-provider
: add end-to-end acceptance testing with codecept
: https://github.com/buttcloud/butthub-provider/pull/14 butthub-provider
: battled some end-to-end testing dragons : https://github.com/buttcloud/butthub-provider/pull/14why-is-node-running
and heaps of reading dependency internals, started the journey to find every remaining handle, gotta catch 'em all! butthub-provider
: won the end-to-end test war: https://github.com/buttcloud/butthub-provider/pull/14butthub-provider
: finish a boring dependency upgrade: https://github.com/buttcloud/butthub-provider/pull/12docker-up
: https://github.com/buttcloud/docker-up/pull/4down
should check if resource exists before remove
up
returns output of inspectname
hasUpdate
: true for service
, false otherwiseidField
: network uses Id, volume only has
Name, service uses
ID`docker-up
: add continuous integration tests: https://github.com/buttcloud/docker-up/pull/5 despite my lack of updates, i'm still spending most of my time working on this, so much to do
spent almost a month (!) re-writing and improving the docker swarm manger, now called gyne
.
docker-up
: investigate using sanctuary
docker-up
: port code to use ramda
, folktale
, folktale-validations
, and fluture
docker-up
: re-architect how everything worksdocker-up
to gyne
, the insect queendocker-machine
and gyne
uh, sorry for the radio silence, i ran out of steam to work on this.
my latest plan was to ditch the product and push out a minimal viable tool: a peachpub
command-line tool that would allow you to easily setup a pub swarm on your own cloud machine, using all the work i did on Docker et al.
but now i've had a realization, i've been thinking about PeachCloud all backwards. it shouldn't be a cloud-based pub-as-a-service platform, i don't want to be a centralizing force on the ecosystem, i don't want to deal with the associated regulations for hosting your butts, i don't want to use someone else's computer in a far away data center, i had my mind all turned around.
so, the new approach: PeachCloud is a hardware product.
i don't plan to have a fancy product release anytime soon, but here's a rough outline of next steps, should i find the energy:
ssb-server
that can reliably run with less resources, i.e. Sunrise Choir #sunrise-choirssb-server
with some fun plugins: git-ssb
etcpeach.local
peach.cloud/myPeachKey
to your dynamic IPif anyone is keen to jump on this train to help, keen to support.
Yes!!
Hardware businesses are mostly decentralization friendly: laptops, phones, external hard drives, etc. I wrote about this last year:
Businesses that sell hardware will support the new decentralized internet, increasing people’s self-sufficiency and (literally) empowering them instead of exploiting them.
https://staltz.com/layers-of-the-internet-economy.html
I'd like to see "-as-a-Box" be the new "-as-a-Service". In particular, have you thought about CJDNS-as-a-Box?
Could get inspired by (if it isn't already)/integrate with https://freedombox.org/