hi there,
I've just tagged v0.3.0 of sako[1], a Wallabag[2]-compatible read-it-later application.
I was getting tired of using the shared Wallabag instance from one of the CHATONS[3], which was getting slow (especially on the weekends), and I didn't want to self-host a big PHP stack.
So I've implemented `sako`, a pure-Go server (and client), that tries to be compatible with the Wallabag ecosystem (namely, the Wallabagger[4] plugin and the companion Android-App[5]).
In a nutshell:
```
$> go install
git.sr.ht/~sbinet/sako/cmd/sako-mgr@latest
## create a new sako installation, with a super user
$> export SAKO_ROOT=/path/to/sako/data-dir
$> sako-mgr init -pass SomeS3cr3t -root ${SAKO_ROOT}
## adding a normal user
$> sako-mgr user-add -user bob -pass s3cr3t -email
b...@example.org ${SAKO_ROOT}
## adding a sako-client (for use with the sako REST API)
$> sako-mgr client-add -user bob -client-name 'my sako client' ${SAKO_ROOT}
client for user "bob" created:
client-id=1_<somehash>
client-secret=<some-other-hash>
## importing data from a remote Wallabag instance
$> sako-mgr import \
-src-uri
https://wallabag.example.org \
-src-usr bob-on-wallabag \
-src-pwd bob-pwd-on-wallabag \
-src-api-id ${WALLABAG_CLIENT_ID} \
-src-api-secret ${WALLABAG_CLIENT_SECRET} \
-dst-uri ${SAKO_ROOT} \
-dst-usr bob \
-dst-pwd s3cr3t
## using sako:
$> go install
git.sr.ht/~sbinet/sako/cmd/sako-srv@latest
$> sako-srv -addr :8080 -dir ${SAKO_ROOT}
```
Screenshots are available on ~sbinet/sako.
Many thanks to Egon Elbre for their set of freely available (and cute) gophers[6] (and the one hiking with a backpack).
hth,
-s
[1]:
https://sr.ht/~sbinet/sako/
[2]:
https://wallabag.org/
[3]:
https://chatons.org
[4]:
https://github.com/wallabag/wallabagger
[5]:
https://github.com/wallabag/android-app
[6]:
https://github.com/egonelbre/gophers
PS: you need Go-1.23 (as sako is using iter.Seq2[T,U] and friends)