repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

(1099) commits
Eric Bower  ·  2025-04-06
chore(pobj): rm unused log stmts
87b874c
(lru)
Eric Bower  ·  2025-04-05
feat(pgs): lru cache for object info and special files
91dabf9
(impersonate)
Eric Bower  ·  2025-03-28
chore: use `user_id` in log middleware to set the user ctx
Eric Bower  ·  2025-03-28
feat(pgs): admins can impersonate

This change will let admins impersonate any user for the pgs cli
Eric Bower  ·  2025-04-05
fix(pgs): do not expose `_redirects` and `_headers` over https.
Eric Bower  ·  2025-04-01
fix(tui.analytics): allow users to enable analytics

The core issue here is around focus management.  When a user enters the
analytics page, we fetch site stats regardless if they have analytics
enabled which then applies focus to the left page.  However for users
witohut analytics enabled we do not focus the left pane which means all
key events are lost.  In vaxis if we try to focus a widget that doesn't
exist we lose the key events in our page widget.
Eric Bower  ·  2025-04-04
fix(pgs): ability to create multiple projects in single ssh session

Previously we were caching the project when a user uploaded a bunch of
files.  This was an optimization that didn't account for when a user has
an active sftp connection where they create multiple projects in a
single session.  This code change performs an extra check to ensure we
are always creating new projects when necessary.
Eric Bower  ·  2025-04-03
docs(pgs): copy
Antonio Mika  ·  2025-04-02
Don't require focus for adding
Eric Bower  ·  2025-03-31
fix(tui.tokens): add explainer text about how to copy tokens
Antonio Mika  ·  2025-03-30
Ensure auth uses a good dns
Antonio Mika  ·  2025-03-30
Only add host key if it's not empty
7f17f63
(v3.18.0)
Antonio Mika  ·  2025-03-30
Allow host key to be passed in, update deps
Eric Bower  ·  2025-03-27
fix(tui.signup): when focus is on input and use presses enter, submit
form
Eric Bower  ·  2025-03-26
chore(make): rm tty for dump cmd
Antonio Mika  ·  2025-03-24
Fix pipemgr command
Antonio Mika  ·  2025-03-21
Fix sni events
Antonio Mika  ·  2025-03-21
Fixes races and cleanup rogue print
Eric Bower  ·  2025-03-21
chore: update senpai v0.4.0
Antonio Mika  ·  2025-03-21
Fix logs for sni
Eric Bower  ·  2025-03-21
fix(tui): dont fetch user info when creating a page

fix(tui): dont panic
Antonio Mika  ·  2025-03-20
Fix server id
Antonio Mika  ·  2025-03-20
Fix lint
Antonio Mika  ·  2025-03-20
Use durable tunnel ids and fix logs
Eric Bower  ·  2025-03-20
fix(auth): newlines for rss tuns events
Eric Bower  ·  2025-03-20
fix(auth): test
fd9c1fe
(tuns-conn)
Eric Bower  ·  2025-03-20
chore(auth): change pico+ interval to 10min
Eric Bower  ·  2025-03-19
feat(tui.tuns): conn events
Eric Bower  ·  2025-03-19
fix(tui): add loading states for analytics and tuns
Eric Bower  ·  2025-03-19
fix(tui.tuns): reset requests pane when selecting
Eric Bower  ·  2025-03-19
chore(tui.tuns): godmode for admins
Eric Bower  ·  2025-03-19
fix(tui.tuns): filter by user
Eric Bower  ·  2025-03-17
feat(tui): tuns
Eric Bower  ·  2025-03-17
docs(tui): descriptions for pubkeys and tokens
Eric Bower  ·  2025-03-17
style(tui): analytics tweaks
Antonio Mika  ·  2025-03-15
Add impersonation for pipe
Eric Bower  ·  2025-03-14
chore(tui.logs): lint
Eric Bower  ·  2025-03-14
chore(tui.logs): remove focus ability
Eric Bower  ·  2025-03-14
chore(auth): better pico+ rss feed items
50f4110
(v3.17.1)
Antonio Mika  ·  2025-03-14
Fix feeds and remove deprecated notice for cli apps
9d325fb
(v3.17.0)
Antonio Mika  ·  2025-03-13
Merge pull request #190 from picosh/am/ssh-server

Started work on a crypto/ssh based ssh server
0a1449a
(am/ssh-server)
Antonio Mika  ·  2025-03-12
Add session specific context based on conn context
Antonio Mika  ·  2025-03-12
Treat EOFs as okay
Antonio Mika  ·  2025-03-12
Add more context to logs
Antonio Mika  ·  2025-03-12
More cleanup
Antonio Mika  ·  2025-03-12
Bring back anon auth for pipe and pico
Antonio Mika  ·  2025-03-12
Add logging
Antonio Mika  ·  2025-03-12
Cleanup prom
Antonio Mika  ·  2025-03-12
Single ssh server generator and prometheus support
Antonio Mika  ·  2025-03-12
Fix lint, remove aws, update deps
Antonio Mika  ·  2025-03-12
Refactor modules
Antonio Mika  ·  2025-03-12
Updates
Antonio Mika  ·  2025-03-12
Remove charm
Antonio Mika  ·  2025-03-11
Almost fully working
Antonio Mika  ·  2025-03-11
More updates
Antonio Mika  ·  2025-03-11
Rebase
Antonio Mika  ·  2025-03-10
Set command properly
Antonio Mika  ·  2025-03-10
More refactoring
Antonio Mika  ·  2025-03-09
More work on standalone ssh
Antonio Mika  ·  2025-03-03
Started work on a crypto/ssh based ssh server
Eric Bower  ·  2025-03-12
feat(tui): support arrow keys for navigation
Eric Bower  ·  2025-03-11
fix(pico): filter logs by user
2a79ed9
(vaxis)
Eric Bower  ·  2025-02-24
refactor(tui): use vaxis

While we really enjoyed the charm stack for our ssh apps, we are at a
point where we want to reduce our overall dependencies for our SSH apps.

With charm we have:

- `crypto/ssh`
- `gliberlabs/ssh`
- `charmbracelet/ssh`
- `charmbracelet/wish`

There's a lot that can go wrong here and we have seen quite a bit of
thrashing within these libraries that required us to make moderate
changes when upgrading.

We also enjoyed bubbletea/lipgloss but we are at the point where we would like to
switch to `vaxis` since it is more inline with our design ethos.

We are basically going to replace 5 go packages with 1 and we are
starting with the TUI.
Antonio Mika  ·  2025-03-10
Update senpai
Antonio Mika  ·  2025-03-08
Add internal crawler matching
Antonio Mika  ·  2025-03-07
Enable ipv6
Antonio Mika  ·  2025-03-07
Merge pull request #191 from picosh/am/web-metrics

Am/web metrics
Antonio Mika  ·  2025-03-07
Set auth metric route
Antonio Mika  ·  2025-03-07
Update bouncer ports
Antonio Mika  ·  2025-03-07
Add promhttp metrics
Antonio Mika  ·  2025-03-07
Switch to senpai upstream
ff4632d
(v3.16.2)
Antonio Mika  ·  2025-03-04
Fix file rejection
Antonio Mika  ·  2025-03-02
Remove pprof diff
3a2868c
(v3.16.1)
Antonio Mika  ·  2025-03-02
update libs
57532d3
(v3.16.0)
Antonio Mika  ·  2025-03-01
Run tidy
Antonio Mika  ·  2025-03-01
Disable always checksum
Antonio Mika  ·  2025-03-01
Update skip logic
Antonio Mika  ·  2025-03-01
Fix leak in skip
Antonio Mika  ·  2025-02-27
Remove interval and burst from caddy
d1cb688
(v3.15.3)
Antonio Mika  ·  2025-02-27
Ensure pipe logger gets attrs
Eric Bower  ·  2025-02-27
chore(pgs): zip and rar content type
Antonio Mika  ·  2025-02-27
Fix pico reverse proxy
b771065
(v3.15.2)
Antonio Mika  ·  2025-02-27
Use consistent naming
Antonio Mika  ·  2025-02-27
Add more detail logging attributes
Antonio Mika  ·  2025-02-27
Fix pipe
ef1e410
(v3.15.1)
Antonio Mika  ·  2025-02-27
Update deps
Antonio Mika  ·  2025-02-27
Logging improvements
6fbdd09
(v3.15.0)
Antonio Mika  ·  2025-02-26
Merge pull request #188 from picosh/am/rsync-updates-2025

Started work on a number of rsync updates
Antonio Mika  ·  2025-02-26
Cleanup
Antonio Mika  ·  2025-02-26
Fix last test
Antonio Mika  ·  2025-02-26
Fix tests
Eric Bower  ·  2025-02-26
docs(pgs): cleanup
Eric Bower  ·  2025-02-26
docs(pgs): landing page copy
Antonio Mika  ·  2025-02-26
Fix api test with memory db
Antonio Mika  ·  2025-02-26
Prepare for deploy
Antonio Mika  ·  2025-02-26
Fix sender, attempt work on compress
Antonio Mika  ·  2025-02-25
Work on sender tests
9bd9552
(am/rsync-updates-2025)
Antonio Mika  ·  2025-02-24
Fix rsync deletes
Eric Bower  ·  2025-02-24
fix(metrics): track prose 404s
Antonio Mika  ·  2025-02-24
Started work on a number of rsync updates
Antonio Mika  ·  2025-02-23
Merge pull request #186 from picosh/rsync-test

Rsync test
Antonio Mika  ·  2025-02-23
Allow clean run of all tests
Antonio Mika  ·  2025-02-23
Fix lint
5c8d929
(rsync-test)
Eric Bower  ·  2025-02-21
chore: test is failing on `--delete`

Alright, the test is failing because of the new `--delete` flag.

```
time=2025-02-21T21:10:11.225-05:00 level=ERROR source=/home/erock/go/pkg/mod/github.com/picosh/send@v0.0.0-20250213162645-ec2027b68462/protocols/rsync/rsync.go:157 msg="error running rsync middleware" service=pgs err="runtime error: index out of range [7876097] with length 0"
```
Eric Bower  ·  2025-02-17
chore: add `rsync --delete` test

I can't figure out how to format the `exec.Command` for rsync with `-e`
flag

Current error:

```
[rsync -rv -e "ssh -p 2222 -o IdentitiesOnly=yes -i /tmp/rsync-3246995037/id_ed25519 -o StrictHostKeyChecking=no" /tmp/rsync-3246995037/ localhost:/test]
rsync: [sender] Failed to exec ssh -p 2222 -o IdentitiesOnly=yes -i /tmp/rsync-3246995037/id_ed25519 -o StrictHostKeyChecking=no: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.4.0]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(232) [sender=3.4.0]
 exit status 14
--- FAIL: TestSshServerRsync (0.10s)
    ssh_test.go:152: exit status 14
```
Antonio Mika  ·  2025-02-13
Add experimental delete functionality
1431524
(v3.14.1)
Antonio Mika  ·  2025-02-13
Fix log line
ca23e6d
(v3.14.0)
Antonio Mika  ·  2025-02-12
Update go version and add buffer to scanner with pipe
Eric Bower  ·  2025-02-06
feat(feeds): unsubscribe link in email digests

fix(feeds): show inline content by default
Eric Bower  ·  2025-02-06
chore(plus): enroll pico blog into digest for pico+ users
Eric Bower  ·  2025-02-06
fix: dockerfile
Eric Bower  ·  2025-02-05
fix(feeds): guid logic
Eric Bower  ·  2025-02-05
chore: extra log item
Eric Bower  ·  2025-02-05
feat(feeds): cli

A remote CLI with some handy options: ls, rm, and run

`run {filename}` is the most interesting because it will run the feed
digest post immediately, ignoring last digest time validation.

This will be useful for people to debug their posts since that is a
pain point for a lot of users.
Eric Bower  ·  2025-02-05
fix(feeds): fallback to feed.Link when feed.GUID is empty

Closes: #184
Eric Bower  ·  2025-02-02
fix: prose and pastes limit filesize uploads
Eric Bower  ·  2025-02-02
chore(pgs): rm apple touch icon
Eric Bower  ·  2025-02-02
docs(pipe): most content on pico.sh/pipe now
Eric Bower  ·  2025-01-29
chore: docker-compose.prod-irc.yml
Eric Bower  ·  2025-01-29
chore(prose): better log stmts
Eric Bower  ·  2025-01-28
chore(pico): hide status section in log line if it is empty
Antonio Mika  ·  2025-01-27
Add websocket to pipe web
Eric Bower  ·  2025-01-26
chore: rm pgs specific settings in shared config struct
654e15b
(pgs-decouple)
Eric Bower  ·  2025-01-25
refactor(pgs): decouple from rest of codebase
Eric Bower  ·  2025-01-25
chore(pgs): cleanup deprecated buckets
Eric Bower  ·  2025-01-25
fix(pgs): close any open readers
Eric Bower  ·  2025-01-23
chore(pgs): ignore error from souin ServeHTTP

Reference: https://github.com/darkweak/souin/blob/0e1579f1adc7c94f16852531c1c3658752c2e3d8/plugins/souin/main.go#L69
Eric Bower  ·  2025-01-23
chore: cleanup logs
Eric Bower  ·  2025-01-23
chore: set log level to info
Eric Bower  ·  2025-01-23
chore: limit minio and imgproxy cpu utilization for prod
Eric Bower  ·  2025-01-23
chore(pgs): rm comments
Eric Bower  ·  2025-01-21
chore(auth): move logs to debug level
Eric Bower  ·  2025-01-21
chore: update `send`
Eric Bower  ·  2025-01-21
chore: update `send` to address rsync goroutine leak
Eric Bower  ·  2025-01-20
fix(prose): only proxy requests to pgs if an image
Antonio Mika  ·  2025-01-19
Add nuremberg dc
Eric Bower  ·  2025-01-19
chore(pgs): prevent deleting `prose` project
Eric Bower  ·  2025-01-19
refactor(prose): remove concept of posts for images
Eric Bower  ·  2025-01-19
chore(pgs): rm deprecated cmd
Eric Bower  ·  2025-01-18
feat(pgs): list urls of all assets in a project with `fzf` cmd
Eric Bower  ·  2025-01-18
chore(prose): cap images to 25mb for free users
ab80ef0
(imgs-migrate)
Eric Bower  ·  2025-01-18
chore(prose): migrate images to pgs
Eric Bower  ·  2025-01-18
chore(prose): rm cli mdw
Eric Bower  ·  2025-01-18
chore(prose): limit image uploads to 50mb
Eric Bower  ·  2025-01-18
fix: go deps
Eric Bower  ·  2025-01-18
chore: imgs cleanup
Eric Bower  ·  2025-01-18
chore: rm imgs
Eric Bower  ·  2025-01-18
revert: ssg
Eric Bower  ·  2025-01-17
chore: setup upload-drain for all pgs/prose files uploaded
Eric Bower  ·  2025-01-17
chore(prose): experimental ssg works
87407ab
(prose-ssg-v2)
Eric Bower  ·  2025-01-14
feat(prose): experimental ssg

Instead of having a web server that serves our blogs on prose.sh, we can
generate the sites and publish them to pgs.sh

This has some benefits:
- HTTP caching
- No need for a web server
- No need for an SSH server

Everything should work the exact same with the one exception for how
users upload their markdown files.

```
rsync *.md prose.sh:/
rsync *.md pgs.sh:/prose
```

Then we have a pipe `prose-drain` that we will use to listen for new
files being uploaded and generate the HTML after that.
0c80ce2
(prose-ssg)
Eric Bower  ·  2025-01-15
fix(imgproxy): properly handle missing last-modified
Eric Bower  ·  2025-01-15
chore: expose minio to imgproxy
Eric Bower  ·  2025-01-14
docs(bouncer): motd

Reference: https://soju.im/doc/soju.1.html
Antonio Mika  ·  2025-01-14
Fix lint, update soju diff and update senpair window change refresh logic
Antonio Mika  ·  2025-01-14
Update deps
Eric Bower  ·  2025-01-12
style(prose): new card image
Eric Bower  ·  2025-01-10
feat(plus): when purchasing membership, automatically enroll in rss feed

In an effort to improve our communication with pico+ users, we want to
automatically enroll them into our user notification feed.
Antonio Mika  ·  2025-01-12
Add entries to name deny list
Eric Bower  ·  2025-01-11
fix(pico): use ssh shared public key auth mechanism
Eric Bower  ·  2025-01-10
chore(tui): copy tweaks
Eric Bower  ·  2025-01-10
chore(feeds): remove posts without an email
4a540a6
(feat-feeds-errs)
Eric Bower  ·  2025-01-09
chore(feeds): better error handling for invalid feed files

When a user uploads an invalid feed file we do not have any mechanism
currently to notify that user.  Further will continue to run the file
through our rss-to-email cron.

This commit makes it so we perform validation on the feed files as they
are uploaded and refuse to save files that we know will eventually
fail.

Further, we don't want to continuously try files that we know will not
succeed so we are pushing those known issues into our retry-then-delete
mechanism inside our cron.
Eric Bower  ·  2025-01-10
fix(pgs): add forward slash to prefix of filepath for calc_route
Eric Bower  ·  2025-01-10
fix(pgs): infinite redirect with 404
Eric Bower  ·  2025-01-10
fix(pgs): default redirect status should be `301`
Eric Bower  ·  2025-01-09
fix(pgs): handle empty filepaths in calc_route
Eric Bower  ·  2025-01-09
fix(storage): check for empty metadata
Mac Chaffee  ·  2024-12-31
feat(pgs): initial support for conditional requests (#178)

Mac Chaffee  ·  2024-12-30
fix(gha): only push images on merge/release (#180)

Eric Bower  ·  2024-12-30
fix(pgs): tests
28b4a62
(imgproxy-etag-v2)
Mac Chaffee  ·  2024-12-21
feat(pgs): forward etag and last-modified headers from imgproxy
10035cd
(imgproxy-etag)
Eric Bower  ·  2024-12-28
fix(pgs): forward query params for rewrites and redirects
Eric Bower  ·  2024-12-25
fix(pgs): redirect slice out-of-bounds
Eric Bower  ·  2024-12-25
fix(pgs): wildcard with splat suffix
Eric Bower  ·  2024-12-23
chore(script): change col names
Eric Bower  ·  2024-12-23
chore(script): new users by month
Eric Bower  ·  2024-12-19
docs: readme
Eric Bower  ·  2024-12-19
docs: readme
Eric Bower  ·  2024-12-19
docs: readme
Eric Bower  ·  2024-12-19
chore: rm workflow
Eric Bower  ·  2024-12-17
chore(tui): copy
Eric Bower  ·  2024-12-17
chore: update send pkg
Eric Bower  ·  2024-12-17
chore(pgs): cache logging

chore(pgs): consistent pkg versions
Eric Bower  ·  2024-12-17
chore(auth): better logging
Eric Bower  ·  2024-12-17
refactor(auth): send caddy access logs directly to metric-drain

This change removes the need to hop from `container-drain` to
`metric-drain`.  Instead we are going to process access logs directly
inside of our `metric-drain` function.
Eric Bower  ·  2024-12-17
chore: filter pipemgr logs to only include access logs
Eric Bower  ·  2024-12-17
refactor(tui): chat page to describe how it works with senpai

We also notify the user that chat is pico+ only
Mac Chaffee  ·  2024-12-17
feat(pgs): Configure cache-control, TTL, max body, exclude /check (#176)

Eric Bower  ·  2024-12-17
style: tweaks
Eric Bower  ·  2024-12-09
refactor(pgs): use soiun in-app for http caching

This gives us more control over the underlying cache and lets us build
our own system for purging our cache.
Eric Bower  ·  2024-12-15
chore(pico): added services section to settings page

This will hopefully make it easier to understand what services a user
can access
Eric Bower  ·  2024-12-13
fix(feeds): move last digest to end of cron
Eric Bower  ·  2024-12-13
fix(pipe): use public key to find user
c59051f
(v3.13.6)
Eric Bower  ·  2024-12-12
refactor(feeds): remove feeds after 3 failed attempts

We have a bunch of feeds in our system that are failing in a loop.
Previously we did not notify the user when there was a failure, we just
logged it internally.

With this change, we will prepend errors to the email message body.
Further, if the feeds errors and doesn't return any feed items, we
increment a counter.  3 failed attempts and we remove the post and
notify the user.
7372600
(v3.13.5)
Eric Bower  ·  2024-12-12
fix: pgs tunnels
dcfb7ac
(v3.13.4)
Eric Bower  ·  2024-12-11
fix: address CVE-2024-45337

Reference: https://github.com/golang/go/issues/70779
Eric Bower  ·  2024-12-04
feat(pgs): cli command to manually clear cache for project
Eric Bower  ·  2024-12-04
chore(pgs): update souin auth user
Mac Chaffee  ·  2024-12-04
feat(pgs): http caching with souin (#159)

Eric Bower  ·  2024-12-03
style(prose): remove `unlisted` tag

This is in an effort to support "pages" that are not automatically
listed on the blog, rather, can be specified in the nav, readme, or
footer.
Eric Bower  ·  2024-12-03
chore(plus): record purchasing email address
Eric Bower  ·  2024-12-02
chore(logs): shorten timestamp
Eric Bower  ·  2024-12-02
chore(analytics): add more indexes
Eric Bower  ·  2024-12-01
chore: copy
Eric Bower  ·  2024-11-30
fix(analytics): limit user sites to valid http.status
Eric Bower  ·  2024-11-30
feat(pico): impersonation
Eric Bower  ·  2024-11-30
chore(analytics): 404 table

fix(analytics): `stats` command
Eric Bower  ·  2024-11-30
fix(analytics): remove created_at for site list
Eric Bower  ·  2024-11-29
feat(tui): analytics
Eric Bower  ·  2024-11-29
chore(auth): ignore usage analytics for everything but text/html
Eric Bower  ·  2024-11-29
chore: cleanup makefile
Eric Bower  ·  2024-11-29
chore(analytics): more cleaning of data
Eric Bower  ·  2024-11-28
chore: tui copy
Eric Bower  ·  2024-11-27
fix(auth): user `server_id` to classify space
Eric Bower  ·  2024-11-27
fix(auth): analytics
Eric Bower  ·  2024-11-15
reactor(metric-drain): use caddy access logs

Previously we were sending site usage analytics within our web app code.
This worked well for our use case because we could filter, parse, and
send the analytics to our pipe `metric-drain` which would then store the
analytics into our database.

Because we want to enable HTTP caching for pgs we won't always reach our
web app code since usage analytics will terminate at our cache layer.

Instead, we want to record analytics higher in the request stack.  In
this case, we want to record site analytics from Caddy access logs.

Here's how it works:

- `pub` caddy access logs to our pipe `container-drain`
- `auth/web` will `sub` to `container-drain`, filter, deserialize, and
  `pub` to `metric-drain`
- `auth/web` will `sub` to `metric-drain` and store the analytics in our
  database
Eric Bower  ·  2024-11-22
chore(sql): update teardown
Eric Bower  ·  2024-11-22
chore(caddy): add access logs for custom domains
Antonio Mika  ·  2024-11-22
feat(pipe) web (#160)

refactor(auth): use new http mux router

---------

Co-authored-by: Eric Bower <me@erock.io>
Eric Bower  ·  2024-11-19
chore: caddy logs to pipe
Antonio Mika  ·  2024-11-18
Don't require space
Antonio Mika  ·  2024-11-18
Set bouncer for oauth
Antonio Mika  ·  2024-11-18
Change auth endpoints to check plus and space
Eric Bower  ·  2024-11-18
chore: go tidy
Antonio Mika  ·  2024-11-18
Only insert visit if clean
Antonio Mika  ·  2024-11-18
Add user to analytics entries
Antonio Mika  ·  2024-11-18
No read timeout when reading metrics
Antonio Mika  ·  2024-11-18
Fix metric drain
Antonio Mika  ·  2024-11-17
Bump utils
60a7e0c
(v3.12.0)
Antonio Mika  ·  2024-11-17
Use shared lib for metrics connection
7e4ad3e
(v3.11.3)
Antonio Mika  ·  2024-11-17
Cleanup and standardize user id for logs
7225c57
(v3.11.2)
Antonio Mika  ·  2024-11-17
Updates utils
Antonio Mika  ·  2024-11-17
Update to add read and write timeouts
d946a84
(v3.11.1)
Antonio Mika  ·  2024-11-17
Update to use reconnect logger
Antonio Mika  ·  2024-11-17
Continue on err for analytics
Antonio Mika  ·  2024-11-17
Add buffering to analytics collection and make it non-blocking
8e0e7f4
(v3.11.0)
Antonio Mika  ·  2024-11-16
Update utils
Antonio Mika  ·  2024-11-16
Update pipe logger and other utils
Eric Bower  ·  2024-11-14
fix(pgs): trusted_proxies
Eric Bower  ·  2024-11-14
chore(pgs,prose): caddy access logs
Eric Bower  ·  2024-11-14
fix: ip address typo
Eric Bower  ·  2024-11-10
feat(auth): subscribe to pico's metric-drain pipe

We have a lot of services that need to record site usage analytics so we
need a distributed way to receive these events.

As a result, all of our site visits will be sent through our pipe
service.  Then inside of our auth service we process the visits and
store them in our analytics table.

This overloads the auth service since it's now serving as a destination
for our metric-drain, but we think that's okay for now.
Eric Bower  ·  2024-11-08
fix(pgs): caddy
Eric Bower  ·  2024-11-08
fix(pgs): trust upstream reverse proxies and forward client ip
Eric Bower  ·  2024-11-08
refactor(pgs): use pobj/storage
Eric Bower  ·  2024-11-08
fix(pgs): set content-length so caddy can compress content
Antonio Mika  ·  2024-11-07
Allow unauthenticated access to public pipes (#157)


Co-authored-by: Eric Bower <me@erock.io>
Eric Bower  ·  2024-11-07
fix(bouncer): previous alpine docker was failing to build
Eric Bower  ·  2024-11-01
chore: 20gb to 10gb for pico+
Eric Bower  ·  2024-10-29
fix(pipe): remove csp
Eric Bower  ·  2024-10-29
chore(analytics): add indexes to table
Eric Bower  ·  2024-10-28
docs: readme
Eric Bower  ·  2024-10-28
chore(pgs): move fns around
Eric Bower  ·  2024-10-28
refactor(pgs): move filehandler to pgs folder
Eric Bower  ·  2024-10-28
fix(pgs): root domain routes were broken
Eric Bower  ·  2024-10-27
refactor(pgs): use `http.ServeMux` v1.22

This change futher separates `pgs` from most of the other services.

One important change is refactoring our web router to use the new
`http.ServeMux` router that does a better job of routing with templated
strings.

Further, we try to leverage the `http.Handler` interface that removes
the need to use `context.Context` as much.
Antonio Mika  ·  2024-10-22
Decrease loop iteration time for pubsub
Eric Bower  ·  2024-10-22
chore(pipe): update cicd copy
Eric Bower  ·  2024-10-18
chore(pgs): print 4 decimal places special files
Mac Chaffee  ·  2024-10-14
chore(pgs): limit size of _redirects and _headers files
Eric Bower  ·  2024-10-16
chore(pgs): api tests
Eric Bower  ·  2024-10-16
chore(pgs): api tests
Eric Bower  ·  2024-10-16
chore(pgs): integration tests for web api (#152)

Eric Bower  ·  2024-10-15
chore: monthly active users script
Eric Bower  ·  2024-10-15
fix(auth): associate payment history and `plus` feature flag
Eric Bower  ·  2024-10-15
fix: check if user is nil when uploading files
Eric Bower  ·  2024-10-13
refactor(pgs): use httputil rev proxy to external service
Eric Bower  ·  2024-10-13
refactor(feeds): only show banner notice when <30 days

feat(feeds): extend engagement click once every 6 months
Eric Bower  ·  2024-10-13
fix(pgs): various _redirects fixes with wildcards and splats
Eric Bower  ·  2024-10-12
fix: linter
Mac Chaffee  ·  2024-10-12
Fix silent failure on invalid redirect syntax (#148)

6503633
(v3.10.1)
Antonio Mika  ·  2024-10-11
Add logger and prom to imgs
c9b9480
(v3.10.0)
Antonio Mika  ·  2024-10-11
Merge pull request #147 from picosh/am/light-refactor

Refactor pubsub->pipe
Antonio Mika  ·  2024-10-11
Update caddyfiles
Antonio Mika  ·  2024-10-11
Refactor pubsub->pipe
Antonio Mika  ·  2024-10-08
Refactor shared utilities
Eric Bower  ·  2024-10-10
docs(pubsub): copy
Antonio Mika  ·  2024-10-09
Add public key comment to pubsub ls
Eric Bower  ·  2024-10-09
docs(pubsub): copy
Eric Bower  ·  2024-10-08
chore(pgs): block site access when project is blocked
Eric Bower  ·  2024-10-08
fix(pico): reject external service redirects for non-paid users
Eric Bower  ·  2024-10-08
chore(pubsub): update asciicast
Eric Bower  ·  2024-10-08
chore: changes asciicast
Eric Bower  ·  2024-10-07
chore: blah
Eric Bower  ·  2024-10-07
docs(pubsub): copy
Eric Bower  ·  2024-10-07
style(pubsub): make it pop
6e77947
(v3.9.0)
Eric Bower  ·  2024-10-07
chore(pubsub): print `-p` flag for pub and pipe stdout msg
Antonio Mika  ·  2024-10-07
Merge pull request #145 from picosh/am/lib-refactor

Refactor
Antonio Mika  ·  2024-10-07
Refactor
Eric Bower  ·  2024-10-07
docs(pubsub): web copy
Eric Bower  ·  2024-10-06
docs(pubsub): copy
Eric Bower  ·  2024-10-06
fix(pico): cleanup logs when leaving page
Eric Bower  ·  2024-10-06
chore(pico): logs work
Eric Bower  ·  2024-10-05
fix(pico): cap log lines to 1k
Eric Bower  ·  2024-10-05
chore(pastes): better logs
Eric Bower  ·  2024-10-05
chore(pastes): better api logs
Eric Bower  ·  2024-10-05
feat(pgs): add cache headers etag and last-modified
Eric Bower  ·  2024-10-05
feat(tui): logs
Antonio Mika  ·  2024-10-05
Fix leaky logs
Eric Bower  ·  2024-10-04
chore: log formatting
Eric Bower  ·  2024-10-04
feat(pico): logs ssh command
e3964cc
(v3.8.2)
Antonio Mika  ·  2024-10-04
Change to log drain
Eric Bower  ·  2024-10-04
chore: logs
Antonio Mika  ·  2024-10-04
Set proper profile setting
497b8a7
(v3.8.1)
Antonio Mika  ·  2024-10-04
Fix incomplete messages
Eric Bower  ·  2024-10-03
fix(pgs): log
Eric Bower  ·  2024-10-03
fix(pgs): log
Antonio Mika  ·  2024-10-03
Updated the output
1d2e979
(v3.8.0)
Eric Bower  ·  2024-10-03
chore(pgs): better structured logging
Antonio Mika  ·  2024-10-03
Merge pull request #143 from picosh/am/send-log-sink

Setup a send log sink
Antonio Mika  ·  2024-10-03
Fix write lock
Antonio Mika  ·  2024-10-03
Add configuration options
Antonio Mika  ·  2024-10-03
Make sure to build pico app
Antonio Mika  ·  2024-10-03
Remove log dep and add data race safe impl
Antonio Mika  ·  2024-10-03
Use once to close channels
Antonio Mika  ·  2024-10-03
Enable robust log handler
Antonio Mika  ·  2024-10-03
Setup a send log sink
Eric Bower  ·  2024-10-03
style(pastes): smol-v2 styles
Antonio Mika  ·  2024-10-03
Fix port setting
Antonio Mika  ·  2024-10-03
Update help command output
Eric Bower  ·  2024-10-03
chore(pubsub): update pubsub dep
Antonio Mika  ·  2024-10-02
Simplify ls
03091f8
(v3.7.0)
Antonio Mika  ·  2024-10-02
Update go version and update pubsub features
Antonio Mika  ·  2024-10-02
Pubsub refactor
Eric Bower  ·  2024-10-01
style(prose): moved tags block to bottom of page
Eric Bower  ·  2024-09-02
feat(prose): `with_styles` setting in `_readme`

This adds a new frontmatter property in `_readme` that allows users to
request no styles from us.  This allows for better customization in
conjunction with `_styles.css` which is the user-defined CSS stylesheet
that gets loaded.
Eric Bower  ·  2024-09-24
refactor(pubsub): default timeout set to 30 days
Eric Bower  ·  2024-09-23
feat(pubsub): if no channel is provided, randomly gen one
Eric Bower  ·  2024-09-23
chore(pubsub): pub log when timeout reached
Eric Bower  ·  2024-09-23
feat(pubsub): pub new flag, `-t {duration}` timeout

The default is no timeout.
Eric Bower  ·  2024-09-23
docs(pubsub): update copy
Eric Bower  ·  2024-09-23
fix(feeds): days until expiration date
Eric Bower  ·  2024-09-23
fix(feeds): flip post expiration check
Eric Bower  ·  2024-09-23
fix(auth): docker tag
Eric Bower  ·  2024-09-23
fix(feeds): url
Eric Bower  ·  2024-08-29
feat(feeds): require human interaction to continue sending emails

BREAKING CHANGE: we require users to click a link in their feed emails
once every 90 days
Eric Bower  ·  2024-09-20
fix(prose): undo footer box for posts
Eric Bower  ·  2024-09-20
chore(feeds): more logging cleanup
8e35e95
(v3.6.0)
Eric Bower  ·  2024-09-20
chore: structured logging for servier and user info
Antonio Mika  ·  2024-09-20
Update some page options
Eric Bower  ·  2024-09-19
docs(pubsub): add our logo
Eric Bower  ·  2024-09-19
docs(pubsub): reorg content
Antonio Mika  ·  2024-09-19
Add gifs to marketing page for send
Antonio Mika  ·  2024-09-19
Added pipe support to send
Antonio Mika  ·  2024-09-18
Merge pull request #140 from picosh/am/pubsub-clean

Alternate pubsub implementation
Antonio Mika  ·  2024-09-18
Add more caching to builds
Antonio Mika  ·  2024-09-18
Added admin listing
Antonio Mika  ·  2024-09-18
Updated pubsub ref
Eric Bower  ·  2024-09-15
chore(prose): revert diff code
Eric Bower  ·  2024-09-10
fix(pgs): redirects
Antonio Mika  ·  2024-09-10
Update dep
Antonio Mika  ·  2024-09-10
Update cli
Antonio Mika  ·  2024-09-10
Alternate pubsub implementation
Eric Bower  ·  2024-09-09
docs(pubsub): copy
Eric Bower  ·  2024-09-09
docs(pubsub): copy
Eric Bower  ·  2024-09-09
fix(pubsub): proper bidirectional blocking
Eric Bower  ·  2024-09-08
docs(pubsub): web copy
Eric Bower  ·  2024-09-08
chore: cleanup
Eric Bower  ·  2024-09-08
feat(pubsub): send messages over public channels
Eric Bower  ·  2024-09-08
feat(pubsub): flag for empty messages
Eric Bower  ·  2024-09-08
docs: copy
Eric Bower  ·  2024-09-07
fix(pubsub): scope `ls` to ssh user
Eric Bower  ·  2024-09-07
fix(pgs): rss feed
Eric Bower  ·  2024-09-05
fix(pubsub): web
Eric Bower  ·  2024-09-04
fix(pubsub): create channel for multicast
Eric Bower  ·  2024-09-04
feat(pubsub): pub waits for a sub
Eric Bower  ·  2024-09-04
chore: cleanup
Eric Bower  ·  2024-09-03
fix(pubsub): compose file
Eric Bower  ·  2024-09-03
chore(pubsub): Caddy use basic reverse proxy
Eric Bower  ·  2024-09-03
chore(pubsub): docker compose config
Eric Bower  ·  2024-09-03
feat: pubsub service
Eric Bower  ·  2024-08-30
feat(imgs): pubsub
Antonio Mika  ·  2024-08-27
Send keys for user info
Antonio Mika  ·  2024-08-26
Add user handler to auth system
Eric Bower  ·  2024-08-26
refactor(pgs): remove CSP and allow headers to be overriden
Eric Bower  ·  2024-08-20
chore: fix linter
Eric Bower  ·  2024-08-20
chore: cleanup go.mod
Eric Bower  ·  2024-08-20
chore: update send pkg
Eric Bower  ·  2024-08-19
feat(pgs): block uploads for specific projects
Eric Bower  ·  2024-08-19
chore(pgs): add projects.blocked col

Sometimes users have sites that violate our ToS.  We can delete the
content but if they have a script that will reupload it will
automatically recreate the site.  So we need a way to prevent uploads to
projects.
Eric Bower  ·  2024-08-19
chore(bouncer): remove debug flag
Eric Bower  ·  2024-08-16
fix(prose): add rss route back
Eric Bower  ·  2024-08-16
chore(bouncer): add `-debug` flag to soju

chore(bouncer): update patch against soju upstream
Eric Bower  ·  2024-08-01
chore: diff in post
Eric Bower  ·  2024-08-01
feat(prose): live journal

The goal is to be able to use posts as live journals where reader can
receive updates to docs via rss.
Eric Bower  ·  2024-07-26
chore(pgs): marketing page copy
Eric Bower  ·  2024-07-22
chore: rm lists.sh
c4d79bb
(v3.5.0)
Eric Bower  ·  2024-07-22
chore: test names
Eric Bower  ·  2024-07-18
fix(tui): force minimum color profile
Eric Bower  ·  2024-07-16
docs: dev doc
Eric Bower  ·  2024-04-05
feat(pgs): rewrite support

feat(pgs): rewrite proxy api support
Eric Bower  ·  2024-07-12
fix(bouncer): update go to 1.22
Eric Bower  ·  2024-07-01
chore(bouncer): disable inactive users after 30 days

See soju docs to read more: https://soju.im/doc/soju.1.html
Eric Bower  ·  2024-07-12
chore(bouncer): switch to codeberg for upstream remote
Eric Bower  ·  2024-07-09
chore: update send and pobj
Eric Bower  ·  2024-07-08
fix: cleanup go.mod
Eric Bower  ·  2024-07-08
chore: ptun => tunkit
Eric Bower  ·  2024-07-08
use local
Eric Bower  ·  2024-07-08
chore: keep pgs ssh pprof
Eric Bower  ·  2024-07-08
fix: use file size if available when uploading
Eric Bower  ·  2024-07-06
chore: update `send`

This fixes a memory leak in our ssh apps.
Eric Bower  ·  2024-06-26
style: update smol
Eric Bower  ·  2024-06-26
style: tweaks
Eric Bower  ·  2024-06-26
style: blockquote for post description
Eric Bower  ·  2024-06-26
style(prose): adjust spacing
Eric Bower  ·  2024-06-26
style: mv anchor link to end of title
Eric Bower  ·  2024-06-26
style: use `time.DateOnly` format for dates
Eric Bower  ·  2024-06-26
style: update smol.css
Eric Bower  ·  2024-06-26
fix(pgs): when removing project, always try to remove objects
35fb876
(v3.4.2)
Eric Bower  ·  2024-06-17
refactor(pgs): use pubkey auth handler
Eric Bower  ·  2024-06-17
refactor: be pickier with which pubkey to accept
Eric Bower  ·  2024-06-16
chore: formatting analytics
Eric Bower  ·  2024-06-16
feat(prose): cli cmd `stats {post}` for analytics
Eric Bower  ·  2024-06-16
feat(pgs): cli cmd `stats {project}` for project analytics
Eric Bower  ·  2024-06-16
chore(pgs): better error message for uploads
Eric Bower  ·  2024-06-16
feat(pgs): change max file size for free tier 1->10mb
Eric Bower  ·  2024-06-14
fix: use official send pkg
Eric Bower  ·  2024-06-12
refactor(pgs): dont copy reader into memory
Eric Bower  ·  2024-06-09
chore(pgs): set memory limit for ssh container
Eric Bower  ·  2024-05-28
feat(imgs): pubsub for docker image tag updates
Antonio Mika  ·  2024-06-03
Updated go.mod to remove replacement
Eric Bower  ·  2024-05-31
chore(pastes): set cron to once every 12h
Eric Bower  ·  2024-05-31
chore(pastes): show unlisted tag
0068695
(v3.4.1)
Antonio Mika  ·  2024-05-31
Merge pull request #136 from picosh/am/update-deps

Update dependencies (for chroma)
Antonio Mika  ·  2024-05-31
Fix lint
Antonio Mika  ·  2024-05-31
Update dependencies (for chroma
Antonio Mika  ·  2024-05-30
Set ip correctly based on prod-irc as well
Eric Bower  ·  2024-05-30
chore(plus): change payment history amount to $24
Antonio Mika  ·  2024-05-30
Speed up caddy build
2e6c06e
(v3.4.0)
Antonio Mika  ·  2024-05-30
Merge pull request #134 from picosh/am/sshfs

Added support for sshfs
Antonio Mika  ·  2024-05-29
Fix lint
Antonio Mika  ·  2024-05-29
Added support for sshfs
Eric Bower  ·  2024-05-28
fix(imgs): user can be nil
Eric Bower  ·  2024-05-28
refactor: remove ability to override CSP for pgs subdomains

BREAKING CHANGE: cannot override default CSP for pgs
Eric Bower  ·  2024-05-21
fix: linter
Eric Bower  ·  2024-05-21
fix: denylist for discovery feed to remove spam
Eric Bower  ·  2024-05-17
chore: use consistent date fmt
Eric Bower  ·  2024-05-17
styles(tui): settings page suggested width
Eric Bower  ·  2024-05-17
feat(tui): settings page
Eric Bower  ·  2024-05-17
styles(tui): md word wrapping
Eric Bower  ·  2024-05-17
styles(tui): create account page
Eric Bower  ·  2024-05-17
docs(tui): copy
Eric Bower  ·  2024-05-17
styles(tui): update input placeholder
Eric Bower  ·  2024-05-17
fix(tui): update models when resizing
Eric Bower  ·  2024-05-17
chore(tui): cleanup
Eric Bower  ·  2024-05-17
chore: cleanup
Eric Bower  ·  2024-05-17
style: page titles
Eric Bower  ·  2024-05-16
refactor(tui): reorganize into pages
Eric Bower  ·  2024-05-16
chore(pgs): set default height to 24
Eric Bower  ·  2024-05-16
chore: use `MakeOptions`
Eric Bower  ·  2024-05-16
refactor: use bubbletea's renderer fn
Eric Bower  ·  2024-05-16
refactor: tui pages
Eric Bower  ·  2024-05-16
styles: cleanup tui colors
Eric Bower  ·  2024-05-15
ascii logo
Eric Bower  ·  2024-05-15
chore(pico): better logging statements
Eric Bower  ·  2024-05-14
chore: copy
af05ecd
(v3.3.1)
Eric Bower  ·  2024-05-14
chore: update storage quotas from 1024 -> 1000
Eric Bower  ·  2024-05-14
docs: copy
84f8549
(v3.3.0)
Eric Bower  ·  2024-05-14
refactor(plus): make plus a single feature (#128)

Eric Bower  ·  2024-05-14
fix(lint): comment
Eric Bower  ·  2024-05-14
chore: url shortener for payment processor checkout url
Eric Bower  ·  2024-05-14
fix: rm `links` from `registry` service

minio and registry are not on the same VM so it was failing when running
docker compose commands
Eric Bower  ·  2024-05-14
fix(pico): check for user in new tui pages
Eric Bower  ·  2024-05-14
refactor(plus): use lemonsqueezy

feat(plus): support international users
Eric Bower  ·  2024-05-13
docs(pico): copy
Eric Bower  ·  2024-05-13
style: update smol.css
Eric Bower  ·  2024-05-13
chore: cleanup
Eric Bower  ·  2024-05-13
chore: tui fixes
Eric Bower  ·  2024-05-13
chore: new screen
Eric Bower  ·  2024-05-10
style: blog posts spacing
Eric Bower  ·  2024-05-08
style: light theme colors
Eric Bower  ·  2024-05-08
style: code headers
Eric Bower  ·  2024-05-08
chore: update smol.css
Eric Bower  ·  2024-05-08
chore: update deps
Eric Bower  ·  2024-05-07
fix(prose): allow .ico to be uploaded

Closes: #131
Eric Bower  ·  2024-05-07
feat: senpai integration (#129)

Co-authored-by: Antonio Mika <antoniomika@gmail.com>
Eric Bower  ·  2024-05-03
fix(tui): don't delete account when active key is deleted (#130)

Eric Bower  ·  2024-04-30
feat: update pubkey comments w authorized_keys

chore: better output when uploading pubkeys
Eric Bower  ·  2024-04-30
fix: users not being able to register an account
3ceca3b
(v3.2.0)
Eric Bower  ·  2024-04-29
feat: pico ssh app (#126)

Eric Bower  ·  2024-04-22
docs: showcase some features
Eric Bower  ·  2024-04-22
chore: readme
Eric Bower  ·  2024-04-22
docs: readme
Eric Bower  ·  2024-04-22
docs: fmt
Eric Bower  ·  2024-04-22
chore: docs
Eric Bower  ·  2024-04-22
chore: doc links
Eric Bower  ·  2024-04-22
chore: readme
Eric Bower  ·  2024-04-22
chore: readme
Eric Bower  ·  2024-04-22
chore: update readme
Eric Bower  ·  2024-04-19
fix(pgs): analytics for private sites
Eric Bower  ·  2024-04-19
chore: update env.example to include registry url
Eric Bower  ·  2024-04-13
feat(imgs): ssh cli with ls and rm commands
Eric Bower  ·  2024-04-17
chore: downgrade go version requirements
Eric Bower  ·  2024-04-09
chore: cleanup pgs cli
Eric Bower  ·  2024-04-09
fix(imgs): need allowed ext
a2877c7
(v3.1.0)
Eric Bower  ·  2024-04-08
chore: TUI only accessible via pico.sh

BREAKING CHANGE: TUI only accessible via pico.sh
sbatial  ·  2024-04-07
Readme: Bump required version to 1.22.0 (#121)

Eric Bower  ·  2024-04-06
fix: linter
Eric Bower  ·  2024-04-06
feat(pgs): override denylist
Eric Bower  ·  2024-04-06
refactor(prose): discover page sorts by publish_at
Eric Bower  ·  2024-04-04
chore: `lint-dev` => `lint`
Eric Bower  ·  2024-04-04
chore(pgs): add better err messages
Eric Bower  ·  2024-04-04
refactor(pgs): switch from allowlist to denylist for files
Eric Bower  ·  2024-04-03
fix(pgs): add trailing slash even with extension
Eric Bower  ·  2024-04-03
feat(pgs): support serving files without extensions
Eric Bower  ·  2024-04-03
feat(pgs): append trailing slash to redirect matchers

This change will make it so a user can provide -- or not provide -- a
trailing slash for matching a route, that way the user doesn't need to
think about it.
Eric Bower  ·  2024-04-03
refactor(pgs): redirects and rewrites
Eric Bower  ·  2024-04-03
feat(pgs): 301 redirect urls that are directories without trailing slash (#116)

Eric Bower  ·  2024-04-02
feat(pgs): support yml, eot, and LICENSE

Closes: #118
Eric Bower  ·  2024-04-02
fix(analytics): better analytic queries
Eric Bower  ·  2024-04-01
chore(feeds): cleanup
Eric Bower  ·  2024-04-01
refactor(feeds): change digest var name
Eric Bower  ·  2024-03-31
fix(analytics): better first day of month calc
Eric Bower  ·  2024-03-31
feat(pgs): add opml to allowlist
Eric Bower  ·  2024-03-31
fix(ui): scope where statement properly
Eric Bower  ·  2024-03-30
fix(pgs): use full filepath when checking for `.well-known`

Closes: #113
Eric Bower  ·  2024-03-29
docs(pgs): copy
Eric Bower  ·  2024-03-29
feat(ui): ability to enable/disable analytics
Eric Bower  ·  2024-03-29
chore(ui): more analytics API endpoints
Eric Bower  ·  2024-03-28
feat(pgs): allow csp to be overriden by upstream
Eric Bower  ·  2024-03-26
fix(prose): add smol.css route
Eric Bower  ·  2024-03-26
fix(prose): copy smol.css from pico.sh

fix(prose): use relative _styles.css

Closes: #112
Eric Bower  ·  2024-03-26
docs(pgs): copy
Eric Bower  ·  2024-03-26
refactor(analytics): cleanup naming and fn params
Eric Bower  ·  2024-03-25
chore(analytics): hmac ip address
Eric Bower  ·  2024-03-25
feat: analytics for visitors on prose and pgs (#111)

Eric Bower  ·  2024-03-24
chore(ui): cleanup api
Eric Bower  ·  2024-03-24
chore(ui): authorization checks
Eric Bower  ·  2024-03-23
fix
Eric Bower  ·  2024-03-23
chore: add pico+ to latest expiration date instead of now

When a user eventually purchases another year of pico+, we don't want to
set the expiration date a year from purchase date.  Rather, we want to
set the expiration date to the expiration date of the feature + 1
year.
Eric Bower  ·  2024-03-22
chore: change toc to Table of Contents
Chloé Vulquin  ·  2024-03-22
cleanup
Chloé Vulquin  ·  2024-03-21
md/toc: make it nice, flexible, and fast
Eric Bower  ·  2024-03-21
cleanup
Eric Bower  ·  2024-03-21
feat(prose): toc
Eric Bower  ·  2024-03-21
Merge branch 'tags'
Eric Bower  ·  2024-03-21
refactor(prose): dedupe string slice for embedded tags
Eric Bower  ·  2024-03-21
feat(pgs): support `.xsl`

Closes: https://github.com/picosh/pico/issues/105
Eric Bower  ·  2024-03-19
chore: upgrade pgit
Eric Bower  ·  2024-03-19
chore: fmt
Eric Bower  ·  2024-03-19
fix(prose): use image mimetype if file ext provided

Closes: #104
Eric Bower  ·  2024-03-17
docs(pgs): change free tier limit
17d355e
(v3.0.2)
Eric Bower  ·  2024-03-17
chore(plus): increase imgs quota
Eric Bower  ·  2024-03-17
fix(ui): always fetch user from ctx

When a user registers for an account, we set the user ctx, but all the
api endpoint are using an closured version of the user.
Eric Bower  ·  2024-03-17
fix(ui): set user ctx after registering
Eric Bower  ·  2024-03-17
feat(auth): stripe webhook integration (#101)

Cotton Hou  ·  2024-03-17
fix(prose): RSS content-type with charset=utf-8 (#103)

Cotton Hou  ·  2024-03-16
feat(prose): CSS var --body-max-width (#102)

Eric Bower  ·  2024-03-15
chore(auth): pico+ activated rss feed item
Eric Bower  ·  2024-03-15
chore(pgs): reduce free trial to 5MB
Eric Bower  ·  2024-03-13
chore(imgs): cors headers
7b8c79e
(v3.0.1)
Eric Bower  ·  2024-03-13
chore: update ptun
Eric Bower  ·  2024-03-13
fix(imgs): registry needs imgs network
Eric Bower  ·  2024-03-13
fix(imgs): need tmp file
Eric Bower  ·  2024-03-13
fix
Eric Bower  ·  2024-03-13
chore(imgs): move ssh app into pico
Eric Bower  ·  2024-03-13
feat(pgs): impersonation working
Eric Bower  ·  2024-03-12
feat(pgs): impersonate any user
Eric Bower  ·  2024-03-12
chore(ui): objects postfix
Eric Bower  ·  2024-03-12
chore(pgs): add id to objects
Eric Bower  ·  2024-03-12
feat(ui): api for fetching project objects
Eric Bower  ·  2024-03-12
docs(pgs): use port `1337` as canonical port for web tunnels
Eric Bower  ·  2024-03-11
chore(prose): use middle dot to separate date and link
Eric Bower  ·  2024-03-11
chore(prose): rm "on" from post date line

A small gesture to make prose more multi-lingual
Eric Bower  ·  2024-03-11
fix(ui): posts should fetch all posts
Eric Bower  ·  2024-03-11
chore(ui): change post apis
Eric Bower  ·  2024-03-11
chore: cleanup
Eric Bower  ·  2024-03-11
chore: rename plus folder to ui
Eric Bower  ·  2024-03-11
feat: add public_keys.name column
Eric Bower  ·  2024-03-11
feat(ui): more api endpoints!
Eric Bower  ·  2024-03-10
chore(pgs): api cleanup
Eric Bower  ·  2024-03-10
fix(ui): don't bomb on rss token missing
Eric Bower  ·  2024-03-10
feat(pgs): allow cors for private sites
Eric Bower  ·  2024-03-09
chore(pgs): rm cors
Eric Bower  ·  2024-03-09
fix(pgs): caddy
Eric Bower  ·  2024-03-09
chore(pgs): caddy
Eric Bower  ·  2024-03-09
fix: caddy
Eric Bower  ·  2024-03-09
chore: caddy
Eric Bower  ·  2024-03-09
fmt
Eric Bower  ·  2024-03-09
chore(pgs): caddy
Eric Bower  ·  2024-03-09
revert
Eric Bower  ·  2024-03-09
custom caddyfile for pgs
Eric Bower  ·  2024-03-03
feat(pgs): pico-ui
Chloé Vulquin  ·  2024-03-08
mdparser: extract hashtag detection into a func

Also fix a bug where `tags: []` would still do the detection.
Chloé Vulquin  ·  2024-03-08
mdparser: implicitly capture hashtags in document

When they're found, they will be rendered as so:
`<span class="hashtag">...</span>`.

They are ignored in the following:
* block code sections
* block quote sections
* span code sections

This list can be expanded.

We then collect all of the matching hashtags and provide them as
metadata, but only if there is no explicit frontmatter for them.
So a workaround for undesirable hashtag detection is to use front-matter
to specify `tags: []` or similar.
Chloé Vulquin  ·  2024-03-08
mdparser: extract ast manipulation into shared fn (#96)

Eric Bower  ·  2024-03-07
chore: update user to `pico`
Chloé Vulquin  ·  2024-03-05
prose: infer title from first <h1> before any <p> (#93)

This eliminates the need to use explicit title metadata for the vast
majority of posts.

This still allows explicitly setting a title via the frontmatter.
If neither is found, the current logic goes on.
Eric Bower  ·  2024-03-05
fix(prose): rss link should be to website

Closes: #94
Eric Bower  ·  2024-03-05
feat(pgs): add `.wasm` to allowlist
Eric Bower  ·  2024-03-03
feat(pgs): support more file formats
de1beb0
(v3.0.0)
Eric Bower  ·  2024-03-03
fix(pgs): redirect to full url
Eric Bower  ·  2024-03-03
fix(prose): better front-matter error handling on file upload
Eric Bower  ·  2024-03-02
chore(pgs): log requests
Eric Bower  ·  2024-03-02
fix(pgs): various redirect fixes (#92)

Closes: #91
Eric Bower  ·  2024-03-01
fix(pgs): sort rss feed

feat(pgs): add new updated_at rss feed
Eric Bower  ·  2024-03-01
fix: pico-plus script args
Eric Bower  ·  2024-03-01
feat(prose): let user customize 404 page

feat(prose): `_404.md` file now supported
Eric Bower  ·  2024-03-01
chore(pgs): docker compose tmp folder
Eric Bower  ·  2024-03-01
fix(scripts): make pico-plus script more flexible
Eric Bower  ·  2024-03-01
chore: bump docker go version
Eric Bower  ·  2024-02-29
refactor: shared router
Eric Bower  ·  2024-02-29
refactor(shared): http router
Eric Bower  ·  2024-02-29
docs: cleanup
ed582ae
(v2.1.5)
Eric Bower  ·  2024-02-29
chore: pico+ go script
65ca2e2
(v2.1.4)
Eric Bower  ·  2024-02-29
fix: empty username

refactor: ssh styles
feat: add pico+ info
886ea6e
(v2.1.3)
Eric Bower  ·  2024-02-28
chore: rm TERM

chore: add ico to imgs
Eric Bower  ·  2024-02-28
fix: pin charm libs
25281f4
(v2.1.2)
Antonio Mika  ·  2024-02-28
Fix environment colors
Eric Bower  ·  2024-02-28
feat(pgs): support avif and heif image formats
Eric Bower  ·  2024-02-28
docs(pgs): private projects
Eric Bower  ·  2024-02-27
docs(pgs): marketing
Eric Bower  ·  2024-02-27
use v3
Eric Bower  ·  2024-02-27
chore: use v1 gha
Eric Bower  ·  2024-02-27
fix write flag
Eric Bower  ·  2024-02-27
fixes
Eric Bower  ·  2024-02-27
refactor(pgs): new cli api
Eric Bower  ·  2024-02-27
design(pgs): cli aesthetic
Eric Bower  ·  2024-02-26
fix(feeds): name is nullable
Eric Bower  ·  2024-02-25
feat(pgs): _headers file (#83)

https://docs.netlify.com/routing/headers/

Closes: #82
Eric Bower  ·  2024-02-24
chore(pgs): cleanup logs
Eric Bower  ·  2024-02-24
chore: update ptun
d2d691c
(v2.1.1)
Eric Bower  ·  2024-02-24
fix(router): pass writer to create serve basic
Eric Bower  ·  2024-02-24
chore(pgs): acl for public sites
Eric Bower  ·  2024-02-24
chore(pgs): web tunnel cleanup
43ef9bb
(v2.1.0)
Eric Bower  ·  2024-02-24
feat(pgs): private projects with web tunnels (#80)

We can support private projects via local forward ssh tunnels.

Eric sets ACL for project `hey-docs-dev`:

```
ssh pgs.sh acl hey-docs-dev pico antonio
```

Antonio creates SSH tunnel to project:

```
ssh -L 5000:localhost:80 -N hey-docs-dev@pgs.sh
```

Antonio can access site via http://localhost:5000

Other options we support:

- `acl public` -> default, open to everyone
- `acl pico` -> private to any pico user
- `acl pico xxx,yyy` -> private to specific pico users
- `acl public_keys` -> private to anyone with a pubkey
- `acl public_keys sha256:xxx,sha256:yyy` -> private to specific pubkeys

Further, there is a special API endpoint for any sites accessed via a
tunnel: GET http://localhost:5000/pico

This will return information about the user accessing the site, like
pico username, public key used, etc.
0df20ce
(v2.0.0)
Eric Bower  ·  2024-02-21
refactor: make public keys unique (#81)

BREAKING CHANGE: we will no longer support multiple account with the
same public key
Eric Bower  ·  2024-02-19
docs(pgs): copy
799a23e
(v1.13.1)
Eric Bower  ·  2024-02-19
fix: ssh cms
Eric Bower  ·  2024-02-19
chore: fmt
Eric Bower  ·  2024-02-19
chore: rm set username
Eric Bower  ·  2024-02-19
chore: rm set username
Eric Bower  ·  2024-02-19
docs(pgs): marketing copy
2b6624b
(v1.13.0)
Eric Bower  ·  2024-02-19
refactor: make pgs the CMS for pico (#79)

Eric Bower  ·  2024-02-18
feat(auth): pico+ rss feed
Eric Bower  ·  2024-02-18
fix: pico+ sql
3e5777a
(v1.12.1)
Eric Bower  ·  2024-02-18
fix: new user error
Eric Bower  ·  2024-02-18
chore: update pico+ sql
Eric Bower  ·  2024-02-18
chore: use slog wish middleware logger
Eric Bower  ·  2024-02-18
chore: add `GetObjectSize`
15dc5a8
(v1.12.0)
Eric Bower  ·  2024-02-18
refactor: use pobj (#76)

Eric Bower  ·  2024-02-16
refactor: replace zap with slog (#75)

chore: remove lists project
Eric Bower  ·  2024-02-08
fix(prose): allow `_styles.css` to be uploaded again

Closes #74
Eric Bower  ·  2024-02-04
chore(imgs): dont run ssh
Eric Bower  ·  2024-02-04
chore: update auth and imgs services
Eric Bower  ·  2024-02-03
feat(auth): privileged access based on `auth` feature flag
Eric Bower  ·  2024-02-02
refactor(auth): `/key?space=xxx` instead of inside POST body
Eric Bower  ·  2024-02-01
feat(auth): `/key` support to check any space
c37be01
(v1.11.1)
Eric Bower  ·  2024-01-31
docs: copy changes
6dab28c
(v1.11.0)
Eric Bower  ·  2024-01-31
fix(pgs): correct content type
Eric Bower  ·  2024-01-31
chore(prose): set img proc defaults
Eric Bower  ·  2024-01-31
feat: support more imgproxy options (#73)

New options in any combinations:

- `/s:w:h`
- `/q:1-100`
- `/rt:angle`

We also still support our imgs api version of sizing.
Eric Bower  ·  2024-01-30
fix(imgs): redirect to prose.sh
Eric Bower  ·  2024-01-29
chore(imgs): remove unused code
Eric Bower  ·  2024-01-29
feat(prose): directory of images at `x.prose.sh/i`
3c82bf5
(v1.10.0)
Eric Bower  ·  2024-01-29
refactor(imgs): merge into prose.sh (#71)

feat(pgs): use image proxy for images

BREAKING CHANGE: removed imgs.sh blog features
Eric Bower  ·  2024-01-27
fix: go fmt
Eric Bower  ·  2024-01-27
fix(pgs): classify xml when calc routes

`.xml` files were returning as `text/plain` which has different routing
rules than what xml should have.

Closes https://github.com/picosh/pico/issues/72
Eric Bower  ·  2024-01-25
chore(pgs): increase storage max to 25MB
Eric Bower  ·  2024-01-25
fix: default size limit fallbacks
d812172
(v1.9.0)
Eric Bower  ·  2024-01-25
pico pro (#69)

Antonio Mika  ·  2024-01-25
Update irc configs
Eric Bower  ·  2024-01-24
chore: allow us to use sojuctl (#70)

Eric Bower  ·  2024-01-21
chore: add feeds cmd for testing fetcher
Eric Bower  ·  2024-01-20
fix(lists): update shutdown date
Eric Bower  ·  2024-01-20
fix(lists): add real blog post
Eric Bower  ·  2024-01-20
shutdown notice
Eric Bower  ·  2024-01-19
fix(feeds): move cron to web app

Our `Dockerfile` doesn't move template files into their respective
images when it's an SSH app.  feeds' cron requires those template files
in order to send emails.
Eric Bower  ·  2024-01-17
revert: imgs ssh
Antonio Mika  ·  2024-01-18
Use new httpmux config option and explicitly set max users
d1895d2
(v1.8.3)
Eric Bower  ·  2024-01-16
refactor(imgs): use prose ssh app

Prose's ssh app does the same thing as imgs so there is no point in
having them both.  This frees up an IP address for us to use for other
purposes.
Eric Bower  ·  2024-01-16
refactor(feeds): cron to run on ssh server
Eric Bower  ·  2024-01-16
style(pastes): add `.post-date` css
8e9e6c8
(v1.8.2)
Eric Bower  ·  2024-01-16
chore: force pgit to update
Eric Bower  ·  2024-01-15
chore: update license with company name
Antonio Mika  ·  2024-01-14
Fix soju config
Antonio Mika  ·  2024-01-14
Update subscriber change for soju
Antonio Mika  ·  2024-01-14
Add prometheus and identd
Eric Bower  ·  2024-01-12
style: use docs smol.css as canonical css framework
421f370
(v1.8.1)
Eric Bower  ·  2024-01-11
chore: update service intros
Eric Bower  ·  2024-01-11
refactor: move ssh services into service packages

The only excpetion is imgs.sh which contains a circular dep.
Eric Bower  ·  2024-01-09
docs: readme
Eric Bower  ·  2024-01-09
docs: tweak footers
d77b910
(v1.8.0)
Eric Bower  ·  2024-01-09
Refactor docs (#68)

Removed all docs associated with our services and moved them to a centralized source: https://pico.sh
securepub  ·  2024-01-08
doc suggestion from IRC #pico.sh @ libera.chat (#67)

[10:25am] pareidoliac: I have had problem with the docs apart from the minor detail that the "-> yourusername"
          should be "-> {username}-myproject" in the https://pgs.sh/help#custom-domain section.
[10:25am] pareidoliac: thinking of making a PR to suggest that
[10:29am] pareidoliac: also suggest mentioning the CSP policy pico.sh vs custom domain in the https://pgs.sh/help#spa section
[10:44am] erock: happy to accept PRs

Co-authored-by: jungle <jungle@night.local>
Eric Bower  ·  2024-01-02
docs(pastes): showcase rsync support
Eric Bower  ·  2024-01-02
docs(pastes): showcase sftp support
Eric Bower  ·  2024-01-02
chore(prose): support trailing "/" for post raw
Eric Bower  ·  2024-01-02
fix(prose): support trailing "/" in url

Closes: https://github.com/picosh/pico/issues/64
Eric Bower  ·  2024-01-02
fix(imgs): dont clip ext unless actually file ext

Closes: https://github.com/picosh/pico/issues/65
Eric Bower  ·  2024-01-01
docs(prose): prefer rsync
Eric Bower  ·  2024-01-01
docs(prose): promote `sftp`
Eric Bower  ·  2024-01-01
chore(deps): tidy
Eric Bower  ·  2024-01-01
chore: update golang.org/x/crypto (#63)

Reference: https://groups.google.com/g/golang-announce/c/-n5WqVC18LQ
Eric Bower  ·  2023-11-26
refactor: move `wish/*` to its own repo (#62)

Amar Paul  ·  2023-11-20
typo: help.page.tmpl (#61)

0a92938
(v1.7.2)
Antonio Mika  ·  2023-11-17
Don't send notifications when self
Antonio Mika  ·  2023-11-16
Fix bug in contains
Antonio Mika  ·  2023-11-16
Update soju patch to include selective message notifications
Eric Bower  ·  2023-11-16
fix(pgs): period in route redirects to 404 (#59)

Closes #58
Eric Bower  ·  2023-11-16
chore: add tokens view to pgs cms (#60)

Antonio Mika  ·  2023-11-15
Push network id with broadcasted message in soju
5a1f3d8
(v1.7.1)
Antonio Mika  ·  2023-11-15
Enable panic recovery in ssh and set logger to be based on debug
Antonio Mika  ·  2023-11-13
Redirect imgproxy root
Antonio Mika  ·  2023-11-13
Add metrics for imgproxy
Antonio Mika  ·  2023-11-13
Set proper route ordering
Antonio Mika  ·  2023-11-13
Fixed endpoint for caddy metrics
Antonio Mika  ·  2023-11-13
Update our caddyfiles for imgproxy
f1e1fbb
(v1.7.0)
Eric Bower  ·  2023-11-13
refactor(imgs): use imgproxy instead of libwebp (#56)

---------

Co-authored-by: Antonio Mika <antoniomika@gmail.com>
Eric Bower  ·  2023-11-12
chore: go deps
Eric Bower  ·  2023-11-12
refactor(imgs): dont bring libwebp into every service (#55)

Most of our libwebp related code lived inside the `shared` package.  This is
problematic since every service imports that package, thereby requiring
libwebp for every service.

Now references to libwebp live solely inside `imgs` library.

Unfortunately, all of our post-based SSH services import `imgs` so they
still have the requirement.
f8e4071
(v1.6.0)
Antonio Mika  ·  2023-11-12
Merge pull request #53 from picosh/post-filesize

post filesize script
Antonio Mika  ·  2023-11-12
Merge pull request #54 from picosh/am/dynamic-list

Add the ability to set the per page by window height
Antonio Mika  ·  2023-11-12
Add the ability to set the per page by window height
Eric Bower  ·  2023-11-12
feat(prose): render `unlisted` on post when hidden
Eric Bower  ·  2023-11-12
feat(pastes): set custom expiration and set paste to unlisted (#52)

Eric Bower  ·  2023-11-12
fix(pgs): load created_at and updated_at for projects
Eric Bower  ·  2023-11-12
chore: `make scripts` command
Eric Bower  ·  2023-11-12
skip imgs
Eric Bower  ·  2023-11-12
ready
Eric Bower  ·  2023-11-11
post filesize
Eric Bower  ·  2023-11-11
chore(script): clean write env var
Eric Bower  ·  2023-11-11
fix: lint
Eric Bower  ·  2023-11-11
chore(pgs): rm objects from store when project no longer exists
Eric Bower  ·  2023-11-11
fix(pgs): missing project name when deleting project files from store
4d12bdf
(v1.5.1)
Antonio Mika  ·  2023-11-11
Fix panic in toupper
ccc0df5
(v1.5.0)
Antonio Mika  ·  2023-11-11
Add feature flag for advanced pastes management
Eric Bower  ·  2023-11-11
fix(gha): copy contents not dir itself
Eric Bower  ·  2023-11-10
chore: use latest pgs-action
3781df8
(v1.4.2)
Antonio Mika  ·  2023-11-10
Report same issues on receive
Antonio Mika  ·  2023-11-10
Added the tuns caddyfile
f083f44
(v1.4.1)
Antonio Mika  ·  2023-11-10
Put key auth behind feature flag
f10bd2a
(v1.4.0)
Antonio Mika  ·  2023-11-10
Add key endpoint for sish
550b987
(v1.3.6)
Antonio Mika  ·  2023-11-10
Set correct updated at when creating a post
dcf93cb
(v1.3.5)
Antonio Mika  ·  2023-11-10
Don't use now for updates
3a969c2
(v1.3.4)
Antonio Mika  ·  2023-11-10
Properly check mod time as well for updating a post
e571347
(v1.3.3)
Antonio Mika  ·  2023-11-10
Use modtime from client, not now
1a0e40b
(v1.3.2)
Antonio Mika  ·  2023-11-10
Properly update post time when updated
0c6b9a9
(v1.3.1)
Antonio Mika  ·  2023-11-10
Skip empty files in rsync
358794c
(v1.3.0)
Antonio Mika  ·  2023-11-10
Change to 1.21 for static site builder
Antonio Mika  ·  2023-11-10
Merge pull request #51 from picosh/am/rsync-updates

Am/rsync updates
Antonio Mika  ·  2023-11-10
Ignore error on status messages
Antonio Mika  ·  2023-11-10
Properly close connection for unsupported flags
Antonio Mika  ·  2023-11-10
Ignore error for chtimes as nop
Antonio Mika  ·  2023-11-10
Update go-rsync dep
Antonio Mika  ·  2023-11-10
More work to properly support rsync
Antonio Mika  ·  2023-11-09
Working on adding more features to rsync
a8ab7f3
(v1.2.2)
Antonio Mika  ·  2023-11-09
Improve pgs filesystem support (and fix local storage)
dc6a7d0
(v1.2.1)
Antonio Mika  ·  2023-11-09
Fix sftp
Antonio Mika  ·  2023-11-09
Only build bouncer and caddy when changes are made to their contexts
d2c81f6
(v1.2.0)
Antonio Mika  ·  2023-11-09
Set auth tag properly
Antonio Mika  ·  2023-11-08
Merge pull request #50 from picosh/am/update-sftp

Fixed issues with sftp file listing and downloading from minio
Antonio Mika  ·  2023-11-08
Checkout repo before start
Antonio Mika  ·  2023-11-08
Break out reused code
Antonio Mika  ·  2023-11-08
Another one
Antonio Mika  ·  2023-11-08
Last try
Antonio Mika  ·  2023-11-08
Last change
Antonio Mika  ·  2023-11-08
Another one
Antonio Mika  ·  2023-11-08
Retry build
Antonio Mika  ·  2023-11-08
Fix
Antonio Mika  ·  2023-11-08
Refactor actions for matrix builds
Antonio Mika  ·  2023-11-08
Fix deprecations
Antonio Mika  ·  2023-11-08
Added the ability to remove files using sftp
Antonio Mika  ·  2023-11-08
Fixed issues with sftp file listing and downloading from minio
Eric Bower  ·  2023-11-07
design: tweak headers
Eric Bower  ·  2023-11-06
fix(imgs): better handling of 404 images
Antonio Mika  ·  2023-11-05
Added caddy metrics to auth
Eric Bower  ·  2023-10-20
docs(pgs): `_redirects` copy
Eric Bower  ·  2023-10-20
feat(pgs): support `_redirects` special file for routing (#48)

Antonio Mika  ·  2023-10-14
Merge pull request #47 from picosh/am/soju-webpush

Added simple diff for soju to fix firefox and ios webpush
Antonio Mika  ·  2023-10-14
Added simple diff for soju to fix firefox and ios webpush
Eric Bower  ·  2023-10-13
fix(bouncer): makefile cmd
Eric Bower  ·  2023-10-13
chore: update soju.config
Eric Bower  ·  2023-10-10
doc(pgs): copy edits marketing page
Eric Bower  ·  2023-10-10
feat(pastes): extend file expiration from 7 -> 90 days
chore(pastes): update copy
refactor(pastes): move ssh server into `pastes` package
Eric Bower  ·  2023-10-07
chore(pgs): add more mime types to helper
Antonio Mika  ·  2023-10-06
Implement a fake oauth login system that uses ssh generated tokens (#44)

Antonio Mika  ·  2023-10-05
Ensure caddy metrics are enabled
Antonio Mika  ·  2023-10-05
Ops cleanup
Antonio Mika  ·  2023-10-05
Merge pull request #43 from picosh/am/irc

Adds infra support for irc infrastructure
Antonio Mika  ·  2023-10-05
Added monitoring caddyfile
Antonio Mika  ·  2023-10-05
Fixed minio env var
Antonio Mika  ·  2023-10-05
Work on adding bouncer and auth services to deployments
Eric Bower  ·  2023-10-05
chore(docker): sync production changes
Eric Bower  ·  2023-10-05
fix(imgs): regression with upload changes
Eric Bower  ·  2023-10-04
fix(bouncer): soju config
Eric Bower  ·  2023-10-03
feat(pgs): add .webmanifest and .map
Eric Bower  ·  2023-10-03
chore(irc): separate docker compose file
Eric Bower  ·  2023-09-27
fix(imgs): when calc user's total img size, coalesce null to 0

chore: add more error logging for us to debug
Eric Bower  ·  2023-09-22
feat(auth): web service (#42)

Authentication (oauth2) web service intended for soju bouncer.

We are also introducings tokens which users can create through the SSH CMS for all services. This will allow users to generate an API token so they can authenticate with our oauth2 API.
Eric Bower  ·  2023-09-14
feat: anchor links for prose

design: preserve header `font-size` when there's a `<code />` child
Eric Bower  ·  2023-09-11
fix: gitignore
Eric Bower  ·  2023-09-11
design(pastes): max-width 1025px
Eric Bower  ·  2023-09-11
feat(pgs): pretty urls
Eric Bower  ·  2023-09-06
chore(router): remove noisy logs
Eric Bower  ·  2023-09-06
doc(pgs): copy changes
Eric Bower  ·  2023-09-06
doc(pgs): better articulate this is closed beta

Also describe the requirements for participation
Eric Bower  ·  2023-09-05
feat(pgs): allowing `.rss` `.atom`, and `.xml` file extensions
Eric Bower  ·  2023-09-05
feat(pgs): `/rss` endpoint
Eric Bower  ·  2023-09-05
feat(pgs): `{user}.pgs.sh` supported by creating `{user}` project
Eric Bower  ·  2023-09-05
chore(pgs): move most ssh code to pgs package
Christopher Hoelter  ·  2023-09-05
Consistent ordering of nav items (#40)

* Ensuring consistent ordering of nav items

If nav items are declared in the yaml without the "-" prefix ordering
was random of those items and a page refresh could change where they
are. This ensures ordering is preserved in that situation.
Eric Bower  ·  2023-09-05
fix(pgs): link to help page
Eric Bower  ·  2023-09-05
refactor(pgs): check handler should return 404
Eric Bower  ·  2023-09-05
fix(pgs): new `/check` handler for custom domains
Eric Bower  ·  2023-09-05
chore: add more logging for router
Christopher Hoelter  ·  2023-09-05
Added basic .editorconfig file. (#39)

Christopher Hoelter  ·  2023-09-05
Updated dependencies required in readme. (#38)

Eric Bower  ·  2023-09-01
fix(pgs): routes should prefer `/check` first
Eric Bower  ·  2023-09-01
fix(pgs): retain
Eric Bower  ·  2023-09-01
fix: caddy
Eric Bower  ·  2023-09-01
fix(prose): upload single file without referencing name in destination

Fixes #36
Eric Bower  ·  2023-09-01
fix(pgs): allow users to run commands when bucket quota exceeded
Eric Bower  ·  2023-08-19
docs(pgs): marketing copy
Eric Bower  ·  2023-08-19
chore(pgs): print summary for prune op
Eric Bower  ·  2023-08-19
chore(prose): updated blog rss feeds
Eric Bower  ·  2023-08-17
refactor(pgs): cli outputs and asset upload optimizations
Eric Bower  ·  2023-08-17
fix: lint
Eric Bower  ·  2023-08-17
refactor: move Cmd to own file
Eric Bower  ·  2023-08-17
fix: use go1.21 in CI
Eric Bower  ·  2023-08-17
use go1.21
Eric Bower  ·  2023-08-17
refactor(pgs): reorganized ssh cmds

feat: all cmds are safe by default, use `--write` to commit
Eric Bower  ·  2023-08-16
fix: `project` might not exist during link
Eric Bower  ·  2023-08-16
feat: order projects by name asc
Eric Bower  ·  2023-08-16
chore: delete orphaned assets when linking projects
Eric Bower  ·  2023-08-16
fix: only delete assets from exact project match

refactor: abstract removing assets
Eric Bower  ·  2023-08-16
upload to hey instead of erock
Eric Bower  ·  2023-08-16
fix: validate project names
Eric Bower  ·  2023-08-14
fix(pgs): add check handler
Eric Bower  ·  2023-08-14
docs(pgs): rm markdown syntax
Eric Bower  ·  2023-08-14
fix(pgs): only ListObjects with specific match
Eric Bower  ·  2023-08-14
fix(pgs): link regression
Eric Bower  ·  2023-08-14
fix: better 404
Eric Bower  ·  2023-08-14
fix: better object detection and route detection
Eric Bower  ·  2023-08-14
feat: delete orphaned files when link succeeds
Eric Bower  ·  2023-08-14
fix: deploy pgs site
Eric Bower  ·  2023-08-13
fix: install deps
Eric Bower  ·  2023-08-13
fix: typo
Eric Bower  ·  2023-08-13
chore: automatically publish static site to pgs
Eric Bower  ·  2023-08-13
chore: cleanup
Eric Bower  ·  2023-08-13
feat: more pgs commands
Eric Bower  ·  2023-08-13
feat: pgit static site generation
Eric Bower  ·  2023-08-13
docs: update readme
Eric Bower  ·  2023-08-13
fix: caddy docker build
Eric Bower  ·  2023-08-13
fix(pgs): better error handling for project mgmt
Eric Bower  ·  2023-08-13
changes
Eric Bower  ·  2023-08-12
changes
Eric Bower  ·  2023-08-12
fix: sftp `ListFiles`

It previously wasn't returning something that sftp was expecting
Eric Bower  ·  2023-08-10
allow recursive for sftp
Eric Bower  ·  2023-08-07
docs: add way to signup
Eric Bower  ·  2023-08-07
use `scp -r` for now
Eric Bower  ·  2023-08-04
fix: upload url
Eric Bower  ·  2023-08-04
fix: upload url
Eric Bower  ·  2023-08-04
feat: make cmd for pgs static site deploy
Eric Bower  ·  2023-08-04
fix: podman bp commands
Eric Bower  ·  2023-08-03
feat: cannot link to a project that is also a link

A project linked to another project which is also linked to a
project is forbidden.  CI/CD Example:
        - ProjectProd links to ProjectStaging
        - ProjectStaging links to ProjectMain
        - We merge `main` and trigger a deploy which uploads to ProjectMain
        - All three get updated immediately
This scenario was not the intent of our CI/CD.  What we actually
wanted was to create a snapshot of ProjectMain and have ProjectStaging
link to the snapshot, but that's not the intended design of pgs.

So we want to close that gap here.
Eric Bower  ·  2023-08-03
feat: pgs.sh (#28)

A zero-dependency static site hosting service for hackers.

Features:
- Terminal workflow
- No client-side installation required to fully manage static sites
- Distinct static sites as "projects"
- Unlimited projects created on-the-fly (no need to create a project
  first)
- Deploy via `rsync -a . erock@pgs.sh:/myproject`
- Symbolic linking from one project to another (to support
  promotions/rollbacks)
- HTTPS for all projects `https://erock-myproject.pgs.sh`
- Custom domains for projects (managed simply by `TXT` records)
Christopher Hoelter  ·  2023-07-04
Updates for macOS build compatibility. (#20)

Updated the readme to include a reference to a macOS system package dependency.
Added minor additional notes on direnv and running the project.
Upgraded project package dependency that includes a macOS build fix.
Christopher Hoelter  ·  2023-07-04
Ensure 'hidden' value gets updated when the draft attribute is modified. (#21)

494540f
(v1.1.6)
Eric Bower  ·  2023-06-17
fix(prose): `/raw/` endpoints should take priority over aliases
d520b3d
(v1.1.5)
Eric Bower  ·  2023-03-27
chore(feeds): feed_items table to store feed items (#16)

Some RSS feeds are technically invalid but still want to be fetched.  In
these cases we want to make sure we can still fetch them and properly
handle when the feed item does not contain correct tags for dates.

Previously we used `published` and internally `last_digest` to determine
if a feed has already been sent to the user.  Well some feed items do
not contain `published` so we would always send the feed item to the
user in their email digest.

Now we are storing the feed items we have fetched in a separate table
along with some of its metadata in order to properly mark a feed item as
"already sent."  Now it doesn't matter if the feed item has the correct
tags or not, we will try to fetch the items, send them to the user, and
them mark them as already sent.
Eric Bower  ·  2023-03-25
chore: move docker commands into variable for makefile
Eric Bower  ·  2023-03-15
chore(imgs): add in-memory caching for resizing images

This caching could also be used for the other services as well now.
Eric Bower  ·  2023-03-15
bug(imgs): ensure webp imgs are saved

Also in this commit is a change to the resize filter algorithm to see if
that helps with quality and performance.

Read more: https://github.com/disintegration/imaging#image-resizing
Eric Bower  ·  2023-03-15
bug(imgs): resize regression because of incorrect switch case
Eric Bower  ·  2023-03-15
chore(prose): add some more rss endpoints
Eric Bower  ·  2023-03-15
fix(imgs): do not convert svg to webp

We never actually tested svg images before "supporting" it.
Eric Bower  ·  2023-03-15
style: nav links
Eric Bower  ·  2023-03-15
style(prose,lists): each nav link in aside theme gets own line
Eric Bower  ·  2023-03-14
chore: fix lint errors
Eric Bower  ·  2023-03-14
feat(prose): aliases can have a leading slash now

It feels more natural to have a leading slash `/` for aliases even
though it's a little more work to handle it properly with current slugs.
Eric Bower  ·  2023-03-13
bug(aliases): add support for comma delimited string
Eric Bower  ·  2023-03-13
style: tweak max-width
Eric Bower  ·  2023-03-13
style: tweak design
Eric Bower  ·  2023-03-12
feat(prose): post aliases (#13)

Posts can now have alias routes as well as the default filename as the
slug.

This is an important feature to support migrating from a self-hosted
hugo blog to one hosted by pico.

```
---
title: My post
aliases:
    - my_awesome_post
    - 2023/03/10/my-post
---
```
Eric Bower  ·  2023-03-07
feat(prose): support custom favicon

Now bloggers can supply their own favicon inside the `_readme.md`

```
---
favicon: https://zzz.png
favicon: /zzz.png
---
```

If relative paths are supplied we replace it with `imgs.sh`
Eric Bower  ·  2023-03-03
fix(lists): use correct var for blog templates
68db7f1
(v1.1.4)
Eric Bower  ·  2023-02-28
feat(cms): ability to see view count for posts
Eric Bower  ·  2023-02-28
chore(db): add view count to post struct
Eric Bower  ·  2023-02-27
style(prose,lists): tweaked /read and blog styles
Eric Bower  ·  2023-02-27
design tweaks
Eric Bower  ·  2023-02-27
feat(prose,lists,imgs): Add rss alt link to blog page

Closes #9
afce979
(v1.1.3)
Antonio Mika  ·  2023-02-24
Fix feeds panic and lists lint
Antonio Mika  ·  2023-02-24
Update caddy resolvers to use cf
Eric Bower  ·  2023-01-27
fix(feeds): wrong id for inline content section
Eric Bower  ·  2023-01-24
chore(feeds): http client cleanup
Eric Bower  ·  2023-01-24
fix(feeds): support reddit rss feeds
Eric Bower  ·  2023-01-23
docs(feeds): add inline content section
Eric Bower  ·  2023-01-23
fix(feeds): when inline_content is false we should only send summary in
email
Colin Henry  ·  2023-01-23
feat(feeds): add option to disable inlining of post content in feed.sh emails (#8)

Eric Bower  ·  2023-01-21
feat(feeds): add description to feeds
Eric Bower  ·  2023-01-16
feat(feeds): render actual content
Eric Bower  ·  2023-01-15
fix(imgs): support uploading webp

We always intended to support `image/webp` but we never actually tested
the code path.
Eric Bower  ·  2023-01-13
chore: cleanup old code
Eric Bower  ·  2023-01-04
fix(feeds): remove log stmt used for debugging
Eric Bower  ·  2023-01-04
fix(feeds): fix validation for digest interval to include `6hour`
Eric Bower  ·  2023-01-04
fix(imgs): typo on hotlink for post
Eric Bower  ·  2023-01-04
feat(imgs): return current total size for user storage

This value will be displayed when uploading an image to imgs.sh.

Example of what it looks like: `https://erock.imgs.sh/barefoot (space: 0.01/1.00GB, 1.39%)`
Eric Bower  ·  2023-01-04
chore(imgs): Add hot links and resizing examples on each imgs post page
Eric Bower  ·  2023-01-04
fix(imgs): allow deletion using the empty post method
Eric Bower  ·  2022-12-26
feat(feeds): add `6hour` to feed digest interval
Eric Bower  ·  2022-12-24
fix(prose): rss link was incorrect
Eric Bower  ·  2022-12-22
fix(feeds): actually use returned date
Eric Bower  ·  2022-12-21
chore(feeds): change subject of email based on post title
Eric Bower  ·  2022-12-21
docs(feeds): update roadmap
Eric Bower  ·  2022-12-21
chore(feeds): fix linter
Eric Bower  ·  2022-12-21
feat(feeds): support html

Also changed how we fetch feeds
Eric Bower  ·  2022-12-21
bug(feeds): cron was not properly validating the digest period
Eric Bower  ·  2022-12-21
fix(feeds): added logging statements and some different fetch logic
34b19ea
(v1.1.2)
Eric Bower  ·  2022-12-20
fix(feeds): cron log is using incorrect `posts.Total`
Eric Bower  ·  2022-12-15
docs: update readme
686369f
(v1.1.1)
Eric Bower  ·  2022-12-15
docs(feeds): update privacy policy
Eric Bower  ·  2022-12-15
docs(feeds): marketing page updates
Eric Bower  ·  2022-12-15
fix(feeds): add feeds space to posts
Eric Bower  ·  2022-12-15
change gh action name for feeds img builder
350d563
(v1.1.0)
Eric Bower  ·  2022-12-14
feeds.sh (#2)

* feat(feeds): init
Eric Bower  ·  2022-12-12
docs: add imgs.sh to readme
Antonio Mika  ·  2022-12-11
Set default address space to not conflict
09c53d9
(v1.0.0)
Antonio Mika  ·  2022-12-11
Merge pull request #6 from picosh/am/no-matrix

Change build to use composite instead of matrix action
Antonio Mika  ·  2022-12-11
Use proper platforms setting
Antonio Mika  ·  2022-12-11
Fix composite action
Antonio Mika  ·  2022-12-11
Return env vars
Antonio Mika  ·  2022-12-11
Change build to use composite instead of matrix action
Antonio Mika  ·  2022-12-11
Return caddy build to separate job
Antonio Mika  ·  2022-12-11
Add caddy step to normal build
Antonio Mika  ·  2022-12-11
Use updated image references
Antonio Mika  ·  2022-12-11
Merge pull request #5 from picosh/am/ci-cd

Added basic ci/cd
Antonio Mika  ·  2022-12-11
Fix lint
Antonio Mika  ·  2022-12-11
Install libwebp when running actions
Antonio Mika  ·  2022-12-11
Added basic ci/cd
Eric Bower  ·  2022-11-22
chore: reference github instead of sr.ht
Eric Bower  ·  2022-11-22
fix: suppress fsetstat error
Eric Bower  ·  2022-11-08
feat(prose): permit rel attribute on hyperlinks.

Closes https://todo.sr.ht/~erock/pico.sh/51
Eric Bower  ·  2022-11-08
docs: remove print stmt
Eric Bower  ·  2022-11-08
refactor(pastes): add col `expires_at` to posts

Currently we figure out how to delete pastes by having a cron goroutine
check on an interval whether or not posts are older than 3 days.
Instead, we want to provide the ability for that delete time to be
determined by individual records.

So we added `expires_at` column to our `posts` table.

I also extended the default expiration from 3 to 7 days.
Eric Bower  ·  2022-11-08
readme update
Eric Bower  ·  2022-11-08
docs: point sourcecode links to github
Eric Bower  ·  2022-11-07
bug(lists): transparency page included wrong templates
Eric Bower  ·  2022-11-07
doc updates
Eric Bower  ·  2022-11-07
feat(lists): relative image urls now route to imgs.sh

This reaches feature parity with prose.sh where we can reference images
hosted by imgs.sh from lists.sh

Both "/image", "./image", and "./image.jpg" are supported.
Eric Bower  ·  2022-11-07
feat(lists): layout support

Introduced parity with prose for different layouts.  Right now we
support "default" and "aside".
Eric Bower  ·  2022-11-02
fix: remove check for imgs feature flag
Eric Bower  ·  2022-11-02
fix: correctly cast bool frontmatter
jupblb  ·  2022-11-01
feat: support `draft` metadata property

Currently we support setting `date` into the future which will result in
the post being still URL addressable but not in our discovery feed, rss,
or the author's feed.
Eric Bower  ·  2022-10-10
refactor: use neurosnap/go-exif-remove for custom patches

`go-exif-remove` uses `go-jpeg-image-structure` in order to strip exif
data.  Unfortunately there's a bug in `go-jpeg-image-structure` that
makes it so some jpeg image aren't detected as jpegs and then fails.

See open PR for details: https://github.com/dsoprea/go-jpeg-image-structure/pull/19
Eric Bower  ·  2022-10-09
bug(upload): removed user field from shared file uploader struct

When a user attempts to upload files to our server, the
logic we use to perform file uploads is baked into a few similar
structs (`ScpUploadHandler` and `UploadImgHandler`).  In those
structs we authenticate their `ssh.Session` by using their name
to find a user record in our db.

We mistakenly had a user field on those shared structs which would
sometimes result in a race condition where user A would upload files to
user B's blog.

We have removed the user field and instead leverage
`ssh.Session.Context` to set and access the user object for our file
uploaders.
Eric Bower  ·  2022-10-08
feat(imgs): set img file size limit to 10mb
Eric Bower  ·  2022-10-07
docs(imgs,prose): add more info for docs

Also added a section on the prose marketing page about
how to upload images with your blog.
Eric Bower  ·  2022-10-06
docs(imgs): fix typo with integrations header
Eric Bower  ·  2022-10-06
feat(imgs): general availability
Eric Bower  ·  2022-09-27
fix(imgs): set level to 1 for lossless

warning: this was the only value I could supply to get this to work
Eric Bower  ·  2022-09-26
feat(imgs): small images are lossless
Eric Bower  ·  2022-09-25
feat(imgs): be more explicit about quality setting

Also change resize algo to nearest neighbor
Eric Bower  ·  2022-09-25
feat(imgs): only modify quality if file is large
Eric Bower  ·  2022-09-07
refactor(wish): downgrade error stmt to info
Eric Bower  ·  2022-09-06
docs(imgs): update marketing copy
Eric Bower  ·  2022-09-06
refactor(imgs): simplified logic in imgHandler
Eric Bower  ·  2022-09-06
docs: remove wish/readme since it's out of date
Eric Bower  ·  2022-09-05
feat(imgs): we save webp images next to main img
Eric Bower  ·  2022-09-02
fix: use host domain for full urls
Eric Bower  ·  2022-09-01
fix: add other rss routes to subdomains
Eric Bower  ·  2022-09-01
fix(lists): use wrong file for readme text
Eric Bower  ·  2022-09-01
fix(imgs): jpg not always detected in exif scrubber
Eric Bower  ·  2022-08-31
refactor(imgs): move image processsing to shared
Antonio Mika  ·  2022-08-31
Add the ability to download images and fix sftp uploads
Eric Bower  ·  2022-08-31
fix(parser): use right imgs url for custom domains
Antonio Mika  ·  2022-08-31
Cleaned up configuration and added debug flag
Antonio Mika  ·  2022-08-31
Work on optimizing imgs.sh
Antonio Mika  ·  2022-08-31
Remove os/user ldd warnings
Antonio Mika  ·  2022-08-31
Switch to debian based images and implement cgo cross compilation
Eric Bower  ·  2022-08-31
docs(imgs): remove metadata sections
Eric Bower  ·  2022-08-31
refactor(imgs): use go-webp
Eric Bower  ·  2022-08-30
feat(prose): special _footer.md appends all posts

This allows users to be able to upload a special "hidden" file that will
be appended to every post.  The intention is to use this as a regular
call-to-action like an email address for feedback.
Eric Bower  ·  2022-08-30
fix(imgs): update marketing page with example
Eric Bower  ·  2022-08-30
feat(imgs): strip exif data for png, jpg
Eric Bower  ·  2022-08-29
feat(imgs): web optimized images
Eric Bower  ·  2022-08-30
fix(all): moved auth middleware above bubbletea
Eric Bower  ·  2022-08-28
feat(prose): support for og images on blog and posts
Antonio Mika  ·  2022-08-28
Move logging before auth
Antonio Mika  ·  2022-08-28
Implement new buffer for sftp and simplify auth logic
Eric Bower  ·  2022-08-27
docs: add section about custom domains check endpoint
Eric Bower  ·  2022-08-26
feat: support for different blog page layouts

"default" and "aside" are currently supported by adding `layout` in the
_readme.md frontmatter
Eric Bower  ·  2022-08-27
fix(rss): lists set proper rss entries for blog
Eric Bower  ·  2022-08-27
fix(rss): limit blog rss feeds to 10
Antonio Mika  ·  2022-08-26
Fixed image deletes from cms and fixed prose image uploads
Antonio Mika  ·  2022-08-26
Move configuration options and add the ability to delete image files from CMS
Antonio Mika  ·  2022-08-26
Added storage to scp handler
Antonio Mika  ·  2022-08-26
Fixed docker build
Antonio Mika  ·  2022-08-26
Added ca certificates
Antonio Mika  ·  2022-08-26
Added minio support to imgs
Antonio Mika  ·  2022-08-26
Added prometheus settings for minio
Antonio Mika  ·  2022-08-26
Fix minio console port and caddy config
Antonio Mika  ·  2022-08-26
Added caddy configurations for minio
Antonio Mika  ·  2022-08-26
Added minio
Eric Bower  ·  2022-08-25
feat(prose): markdown footnotes

style: tweak heading sizes
Eric Bower  ·  2022-08-25
feat(prose,lists): filter posts by all tags read

Now users can filter posts by tag on the read page.  This will allow us
to host writing competitions where users can submit their article with
the tag specifically for the competition and then we read them to pick
a winner.
Antonio Mika  ·  2022-08-25
Fixed list condition
Antonio Mika  ·  2022-08-25
Added rsync and sftp download support
Antonio Mika  ·  2022-08-24
Cleanup update logic and update to go 1.19
Eric Bower  ·  2022-08-23
style: add some margin between articles
Eric Bower  ·  2022-08-22
refactor(all): making sure every post has shasum
Eric Bower  ·  2022-08-22
fix(imgs): use updated shasum logic
Eric Bower  ·  2022-08-22
refactor(imgs): remove markdown metadata uploader

After further thought, using a second markdown file for the metadata of
images was just a little too cumbersome.  I also have a hunch that most
people are not going to take the time to annotate their images into
mini-blogs.
Eric Bower  ·  2022-08-22
refactor(imgs): remove tag tmpl files
Eric Bower  ·  2022-08-22
refactor(imgs): redesign blog page for imgs

After chatting with the pico members, it became clear that the photo
album direction I was heading in was not going to super useful.  Instead
we decided to revert the design back to how the other pico services
function.  So now it's just a stream of images not grouped by tags.
Eric Bower  ·  2022-08-22
fix(mdparser): supply goldmark html config for ImgRenderer
Eric Bower  ·  2022-08-18
feat(prose): allow images to be uploaded from other services
Eric Bower  ·  2022-08-18
refactor: move prose markdown parser to shared
Eric Bower  ·  2022-08-18
docs(imgs): add another feature to roadmap
Eric Bower  ·  2022-08-18
docs(imgs): typo
Eric Bower  ·  2022-08-18
docs(imgs): marketing content updates
Eric Bower  ·  2022-08-18
docs(imgs): add section about metadata
Eric Bower  ·  2022-08-18
fix(all): updated rss feeds to contain more information

I also added aliases to user blog's rss feeds
Eric Bower  ·  2022-08-18
docs(all): update server costs and provider
Antonio Mika  ·  2022-08-17
Add rsync support to imgs
Eric Bower  ·  2022-08-17
fix(sql): updated posts table columns to fix regression

We did not assume mime_type or shasum could be null, so this adjusts the
migration to use what we pasted into our prod db.
Antonio Mika  ·  2022-08-17
Added imgs docker deployment data
Eric Bower  ·  2022-08-17
docs: update example env file with imgs service
Eric Bower  ·  2022-08-17
fix: alignment in pastes blog view
Eric Bower  ·  2022-08-10
feat: imgs.sh

This is the initial release for the imgs.sh premium image hosting for
hackers.
Antonio Mika  ·  2022-08-17
Tidied mod file
Antonio Mika  ·  2022-08-17
Added rsync support
Eric Bower  ·  2022-08-15
fix(lists): nested parser sometimes would divide by zero
Eric Bower  ·  2022-08-12
fix(lists): fix nil pointer reference in parser
Eric Bower  ·  2022-08-10
docs(prose): add help section for supported hugo variables
Eric Bower  ·  2022-08-10
feat: parse nav links to convert relative urls to absolute

This allows users to include posts -- from their prose blog -- as links
in the nav without needing to specify an absolute URL.
Eric Bower  ·  2022-08-10
feat: tag posts with slug as classname on body

This will make it easier to do per post style changes.
Eric Bower  ·  2022-08-09
feat: add ability to pipe to any service

Implements https://todo.sr.ht/~erock/pico.sh/47
Antonio Mika  ·  2022-08-08
Fixed slug being filename when file contents are the same and allow cms post management for future posts
Eric Bower  ·  2022-08-08
fix(lists): need template funcs for rss feeds
Eric Bower  ·  2022-08-08
fix(lists): rss feeds did not handle nested lists
Eric Bower  ·  2022-08-08
feat(css): abstracted common css into single file for all services

It was becoming tedious to make the same change in three different css
files, so I abstracted the main styling into a single file and am now
copying the css into each service's public directory with `make css`.
Eric Bower  ·  2022-08-08
style(prose): update default styling

- Increased header sizes
- Increased font size
- Tweaked colors for light mode
- Tweaked blockquote padding
Eric Bower  ·  2022-08-07
fix(prose): init html policy once
Eric Bower  ·  2022-08-07
fix(prose): regression where syntax highlighting was broken

bluemonday strips all classes so we had to allow classes.
Eric Bower  ·  2022-08-05
fix(lists): spec copy changes
Eric Bower  ·  2022-08-05
fix(lists): wrong anchor links
Eric Bower  ·  2022-08-05
feat(lists): nested lists

Nested lists adds more complexity to our parser but the time complexity
is still `O(n)` where `n = lines in the list`.
Eric Bower  ·  2022-08-04
feat(prose): support limited raw html inside markdown

It would be nice to support limited html in our markdown files so users
can futher customize their blog posts.

We are using https://github.com/microcosm-cc/bluemonday to handle proper
sanitization.
Antonio Mika  ·  2022-08-04
Format Caddyfile
Antonio Mika  ·  2022-08-04
Added raw handler to lists
Antonio Mika  ·  2022-08-04
Added promwish
Eric Bower  ·  2022-08-03
feat(pastes): use post filename for the title
Eric Bower  ·  2022-08-03
refactor: remove gemini code
Eric Bower  ·  2022-08-03
refactor: db -> sql and wish/cms/db -> db

It doesn't make sense to have such an important and all encompasing
package such as `wish/cms/db` to live buried in the cms code.
Eric Bower  ·  2022-08-03
fix: linter
Eric Bower  ·  2022-08-03
feat: allow registration flag

I made it so when a user presses 'esc' in the account creation screen
it will quit the app instead of going to the main cms screen.

Also added better error handling during account creation.

Implements: https://todo.sr.ht/~erock/pico.sh/21
Fixes: https://todo.sr.ht/~erock/pico.sh/41
Fixes: https://todo.sr.ht/~erock/pico.sh/1
Eric Bower  ·  2022-08-03
fix: add ssh_data to gitignore
Eric Bower  ·  2022-08-03
fix: add pipe to ssh command back to pastes

Also fixed an issue where pipe to ssh would display a "%".
Eric Bower  ·  2022-08-02
fix: increase key create ui input length
Eric Bower  ·  2022-08-02
fix: increase public key input to 1000 chars
Eric Bower  ·  2022-08-02
feat: dates migration and reorg one-off scripts

Since we've been needing to perform more complex migrations that depend
on golang, I thought it would be a good idea to have a "home" for our
one-off scripts.

I like the idea of keeping them in git so we can reference them for
future scripts or just for historical reasons.
Antonio Mika  ·  2022-08-02
Support any date format and light refactor
Antonio Mika  ·  2022-08-02
Update readme with information about new deployment method
Antonio Mika  ·  2022-08-02
Remove compose command in favor of direnv configuration
Antonio Mika  ·  2022-08-02
Merge branch 'am/compose-changes'
Antonio Mika  ·  2022-08-02
Add new make targets for docker compose
Antonio Mika  ·  2022-08-02
Update environment setting
Antonio Mika  ·  2022-08-02
Added unified compose file and updated deployment method
Eric Bower  ·  2022-08-02
fix: migration script for post tags

The only way that post tags get added to our database
is if the post gets uploaded.  If there is a post in our
system that already has tags, the tags will show up in the post
but not in the blog tag filter.

This script backports tags for all posts that already had tags
in their system.
Eric Bower  ·  2022-08-02
fix: incorrect tag in yaml was breaking uploader and web render

Also added support for a string based tags value
Antonio Mika  ·  2022-08-02
Merge branch 'main' of git.sr.ht:~erock/pico
Antonio Mika  ·  2022-08-02
Added support for custom domains to lists and pastes
Eric Bower  ·  2022-08-02
docs: add docs about tags
Antonio Mika  ·  2022-08-02
Fix custom domains
Eric Bower  ·  2022-08-01
feat: ability to tag posts for lists and prose

Now users can tag posts and then filter posts on their blog by a single
tag.  We could have supported the ability to filter by multiple tags but
I felt like that was feature creep.  If we get enough requests to filter
by multiple tags then we can reconsider that decision.

I also made it so the blog rss feed will filter based on tag.  This
allows readers to subscribe and read posts specific to a tag.

In a follow up commit we will make it so the `/read` endpoint can also
be filtered by tag, but again I felt like that was feature creep and
probably not something many people will end up using.

Implements: https://todo.sr.ht/~erock/pico.sh/31
Eric Bower  ·  2022-08-01
fix: custom css should be last
Eric Bower  ·  2022-08-01
fix: _styles.css error when root directory is provided for scp.
Eric Bower  ·  2022-08-01
refactor: abstract api functions into shared

I also updated the custom domain logic to apply to all services.

Each service has its own special TXT string, e.g. `_prose`, `_lists`,
`_pastes` which is based on `cfg.Space`.
Antonio Mika  ·  2022-08-01
Fixed custom domain routing logic
Eric Bower  ·  2022-08-01
fix: add readme

Also update references to our repos to point to the new pico repo
Antonio Mika  ·  2022-08-01
Makefile name fix 2
Antonio Mika  ·  2022-08-01
Makefile name fix 1
Antonio Mika  ·  2022-08-01
Fixed multiarch build
Antonio Mika  ·  2022-07-31
Updated caddy image
Eric Bower  ·  2022-07-31
fix: log message when user deletes account
Eric Bower  ·  2022-07-30
fix: adjusted slug migration

We need to ensure that the prod db has the correct filenames since we
are not including the extension in the record.

We also updated all the post urls to use the slug field.
Eric Bower  ·  2022-07-30
refactor: use post column slug for url

By creating a new column for our url slugs, we can allow users to be
able to change the slug.

It also makes the logic around how to generate a post url easier since
it is explicit inside the post record.
Eric Bower  ·  2022-07-30
fix: cleanup file validate logic
Eric Bower  ·  2022-07-30
fix: add latest migration
Eric Bower  ·  2022-07-29
refactor: abstract scp upload handler
Antonio Mika  ·  2022-07-31
Simplified build system and speed up builds
Eric Bower  ·  2022-07-29
refactor: move code from services to root

This is the first of a couple refactors to
abstract as much service code into a separate
package in order to reduce the amount of
code duplication.

This code was essentially copy pasted into
all of the services because we didn't have
a good way to abstract it until now.
Eric Bower  ·  2022-07-29
chore: update make build pushes
Eric Bower  ·  2022-07-29
chore: cleanup imports
Eric Bower  ·  2022-07-29
chore: update static paths for template and public files
Eric Bower  ·  2022-07-29
chore: added wish
Eric Bower  ·  2022-07-28
fix: rm dockerfile in pastes
Eric Bower  ·  2022-07-28
refactor: merge all services code
Eric Bower  ·  2022-07-28
fix: more log statements
Eric Bower  ·  2022-07-28
fix: prose public keys were not always being added
Eric Bower  ·  2022-07-28
preserve view counts
Eric Bower  ·  2022-07-28
fix: rm delete null users
Eric Bower  ·  2022-07-27
use actual wish
Eric Bower  ·  2022-07-27
move migrate script
Eric Bower  ·  2022-07-27
actually commit
Eric Bower  ·  2022-07-27
add license
Eric Bower  ·  2022-07-27
init