92 Commits

Author SHA1 Message Date
Michael Stapelberg
1c16b3b4eb serve favicon.ico 2018-07-15 18:32:46 +02:00
Michael Stapelberg
504f06b15f issue template: add missing * 2018-07-15 17:24:03 +02:00
Michael Stapelberg
6ac0eb2ced add issue template asking for the hardware target 2018-07-15 17:23:07 +02:00
Michael Stapelberg
fc8dd9e2f2 reboot: use cmdline from boot/cmdline.txt
For bootonly updates, switching to the inactive root partition is incorrect.
2018-07-15 10:40:19 +02:00
Michael Stapelberg
9770d4408f move root device finding function to internal/rootdev 2018-07-14 23:37:12 +02:00
Michael Stapelberg
d8206c507c /update/mbr: strip p suffix from mmcblk0p 2018-07-13 23:53:46 +02:00
Michael Stapelberg
835dae6a18 add randomd (carries entropy across restarts) 2018-07-13 23:44:47 +02:00
Michael Stapelberg
24c8ad07b5 streamRequestTo: call f.Sync()
When calling reboot shortly after /update/*, the kernel should flush its cache,
but if you’re not calling reboot, it would be good to persist the data on disk
nevertheless.
2018-07-13 23:16:26 +02:00
Michael Stapelberg
0f8d40d7f6 add /update/mbr 2018-07-12 09:27:32 +02:00
Michael Stapelberg
c74265523b implement XSRF/CSRF protection for /stop and /restart
While stopping/restarting processes seems like a nuisance at best, it’s good
style to prevent these attacks.

This commit the Double-Submit Cookie protection, which seems appropriate for our
architecture and demands. See also:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Double_Submit_Cookie
2018-06-25 18:38:08 +02:00
Michael Stapelberg
7dc7a36757 supervise: refactor to use one HTTP handler 2018-06-25 18:27:23 +02:00
Michael Stapelberg
9a14ab0d8d dhcp: add note to prevent future mistakes 2018-06-22 09:02:53 +02:00
Michael Stapelberg
4a126f13af init+dhcp changes for Squashfs root file systems
We can do away with a bunch of hacks now, but we’ll keep them around for a
little while to make updates easier (i.e. to boot with old and new gokr-packer
versions, just in case people don’t update both at the same time).
2018-06-21 23:21:51 +02:00
Michael Stapelberg
d1d355d840 listeners: treat interfacees named uplink* as public 2018-06-18 09:52:48 +02:00
Michael Stapelberg
59b99bc704 remove hard-coded mmcblk0 from all places 2018-06-17 09:31:14 +02:00
Michael Stapelberg
4f0e427025 reboot: use kexec where possible
This doesn’t work on the Raspberry Pi yet (due to missing kexec_file_load), but
I tested it in qemu.
2018-06-17 09:29:29 +02:00
Michael Stapelberg
91da7026f8 reboot: send SIGTERM to processes, wait for 1s
This way, programs can flush state to permanent storage if they need to.
2018-06-17 08:53:19 +02:00
Michael Stapelberg
6c059494af ntp: set real-time clock (hwclock) if present 2018-06-13 23:51:31 +02:00
Michael Stapelberg
238bbfa55e init: update listeners when pressing <ENTER> on the serial console
This is useful when the network doesn’t come up correctly: you can connect a
network cable between your computer and the gokrazy machine, press <ENTER> on
the serial console and connect to gokrazy via its IPv6 link-local address (to
find the address, use ping6 ff02::1%eth0).
2018-06-12 22:22:47 +02:00
Michael Stapelberg
34f12d9ada update: find root device instead of hard-coding /dev/mmcblk0p*
This should allow using gokrazy from a USB drive.
2018-06-12 22:19:13 +02:00
Michael Stapelberg
9063e4526a add hostname to title
This makes it easier to deal with multiple tabs on multiple devices :)
2018-05-17 09:11:44 +02:00
Michael Stapelberg
6063608b2b update: introduce a /bootonly handler for bakery
Regular updates hit /boot, /root, then /switch.

bakery only updates /boot, so we need to take care of persisting the active root
partition across /boot updates.
2018-05-17 09:08:25 +02:00
Tobias Klauser
50b9390a43 dhcp: simplify Utsname conversion (#36)
Utsname from golang.org/x/sys/unix contains byte array members instead of
int8/uint8. This allows to simplify the NULL byte indexing in
addHostname.
2018-03-29 12:09:08 +02:00
Michael Stapelberg
5760e0f265 use GOKRAZY_UPDATE envvar to avoid exposing passwords in argv
fixes #38
2018-03-29 11:59:54 +02:00
Michael Stapelberg
a470a80ae1 README: expand on the “changing init behavior” example
fixes #39
2018-03-29 11:50:30 +02:00
Michael Stapelberg
b5d7cb2fcf add PublicInterfaceAddrs and display them on the status page 2018-03-20 19:34:36 +01:00
Tobias Klauser
ffa8ce0e42 use WDIOC_KEEPALIVE from golang.org/x/sys/unix (#35)
...now that it was added there.
2017-10-28 12:55:27 +02:00
Michael Stapelberg
2e60d5b8c8 ping hardware watchdog every 1s
In case gokrazy gets stuck for whichever reason, the hardware watchdog will
reset the Raspberry Pi 3.
2017-10-21 20:05:26 +02:00
Michael Stapelberg
32e8b6dd34 dhcp: persist domain name to resolv.conf if specified 2017-09-19 14:48:36 +02:00
Michael Stapelberg
6127f9566e dhcp: set client id (option 61), some routers need it
E.g. /etc/kresd/dhcp_host_domain_ng.sh on a turris omnia incorrectly deletes
DHCP hostname mappings when more than one client does not send a client id.
2017-09-05 09:52:53 +02:00
Michael Stapelberg
3ed1e381b5 ntp: drop privileges to nobody/nogroup, retain CAP_SYS_TIME 2017-09-03 22:21:00 +02:00
Michael Stapelberg
83adedae5d ntp: use gokrazy vendor zone
fixes #34
2017-08-25 09:24:15 +02:00
Michael Stapelberg
eb8f1753b3 ntp: react to breaking API change
See https://github.com/beevik/ntp/pull/14
2017-08-23 09:51:01 +02:00
Michael Stapelberg
b96471c05d update FAT16B writer import path 2017-07-14 03:19:15 +02:00
Michael Stapelberg
13173460da dhcp: set hostname for renewal packets as well
Otherwise, router restarts might result in the hostname getting
lost (observed using dnsmasq on OpenWrt).
2017-07-01 11:29:10 +02:00
Michael Stapelberg
3999a60a05 WaitForClock: give up after 1 year, not 1 minute
related to issue #21
2017-03-25 20:47:47 +01:00
Michael Stapelberg
83181ca00c add empty package
related to #14
2017-03-05 20:27:48 +01:00
Michael Stapelberg
c7ae5cac83 README: add go report card badge 2017-03-04 18:48:20 +01:00
Michael Stapelberg
60d4164cfe README: add travis build status 2017-03-04 18:47:07 +01:00
Michael Stapelberg
b3c9568a9d Link to golang.org for installing go1.8 2017-03-04 18:46:24 +01:00
Michael Stapelberg
09883a3b00 add travis config 2017-03-04 18:45:08 +01:00
Michael Stapelberg
38af7fd18d Initial commit 2017-03-04 11:22:48 +01:00