Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rig up dowork event queue and graceful termination | Drew DeVault | 2020-10-23 | 1 | -0/+3 |
| | |||||
* | go fmt | Simon Ser | 2020-05-20 | 1 | -2/+2 |
| | |||||
* | login: set encrypted "remember me" token | Drew DeVault | 2020-05-20 | 1 | -4/+75 |
| | |||||
* | Rename project to alps | Simon Ser | 2020-05-13 | 1 | -4/+4 |
| | |||||
* | Add default ports for IMAP and SMTP | Simon Ser | 2020-02-12 | 1 | -10/+18 |
| | |||||
* | cmd/koushin: add -debug flag | Simon Ser | 2020-02-11 | 1 | -1/+2 |
| | |||||
* | koushin: add Store interface | Simon Ser | 2020-01-28 | 1 | -1/+1 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/5 | ||||
* | Extract Lua infrastructure into a plugin | Simon Ser | 2020-01-20 | 1 | -13/+5 |
| | |||||
* | Add Server.Logger | Simon Ser | 2020-01-20 | 1 | -0/+5 |
| | |||||
* | Introduce PluginLoaderFunc | Simon Ser | 2020-01-20 | 1 | -3/+10 |
| | | | | | | | This allows registered plugins to execute code when loaded. This will also allow the Lua support code to be a plugin. Closes: https://todo.sr.ht/~sircmpwn/koushin/54 | ||||
* | Check IMAP/SMTP servers on startup | Simon Ser | 2020-01-20 | 1 | -0/+12 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/46 | ||||
* | Disable DNS prefetching | Simon Ser | 2020-01-20 | 1 | -0/+2 |
| | |||||
* | Add support for HTML parts | Simon Ser | 2020-01-20 | 1 | -1/+3 |
| | |||||
* | go fmt | Simon Ser | 2020-01-20 | 1 | -1/+1 |
| | |||||
* | Auto-discover upstream SMTP and IMAP servers | Simon Ser | 2020-01-20 | 1 | -4/+17 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Generalize upstream server URLs | Simon Ser | 2020-01-20 | 1 | -31/+86 |
| | | | | | | | | | koushin now takes a list of upstream URLs instead of an IMAP and SMTP URL. This allows to specify upstream server URLs for plugins. In the future, this will allow for auto-discovering upstream servers based on a single domain name. References: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Redirect to original URL after login | Simon Ser | 2020-01-10 | 1 | -7/+20 |
| | |||||
* | Close Lua plugins on reload | Simon Ser | 2020-01-10 | 1 | -2/+11 |
| | |||||
* | Implement plugin/template reload on SIGUSR1 | Simon Ser | 2020-01-08 | 1 | -29/+58 |
| | | | | | | | | There's no way around having a global mutex, because we need to update the HTTP routes when reloading plugins. During reload we need to lock the whole server. Closes: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | Add Server.Reload | Simon Ser | 2020-01-08 | 1 | -2/+8 |
| | | | | | This only reloads templates for now. In the future it'll also reload Lua plugins. | ||||
* | Make New return the Server | Simon Ser | 2020-01-08 | 1 | -5/+5 |
| | | | | This will be useful to implement hot reload. | ||||
* | Add a default CSP | Simon Ser | 2019-12-18 | 1 | -0/+7 |
| | | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings. | ||||
* | Remove the public/ directory | Simon Ser | 2019-12-16 | 1 | -1/+1 |
| | | | | | Now that all templates are provided by plugins, there's no need to have a public/ directory. Themes can be in /themes instead of /public/themes. | ||||
* | Introduce base plugin | Simon Ser | 2019-12-16 | 1 | -28/+7 |
| | | | | | | This plugin offers base IMAP/SMTP functionality. References: https://todo.sr.ht/~sircmpwn/koushin/39 | ||||
* | Add an API for Go plugins | Simon Ser | 2019-12-16 | 1 | -1/+7 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/39 | ||||
* | Fix undefined ErrSessionExpired | Simon Ser | 2019-12-12 | 1 | -1/+1 |
| | | | | Fixes: f07ab5263246 ("Add docs") | ||||
* | Add docs | Simon Ser | 2019-12-11 | 1 | -2/+6 |
| | |||||
* | Export Server.{Sessions,Plugins} | Simon Ser | 2019-12-11 | 1 | -9/+8 |
| | | | | And unexport a few internal functions. | ||||
* | Unexport NewSessionManager | Simon Ser | 2019-12-11 | 1 | -1/+1 |
| | | | | This isn't intended to be used by plugins. | ||||
* | Export Context.SetSession, unexport Session.Token | Simon Ser | 2019-12-11 | 1 | -5/+6 |
| | | | | | | | I'm uneasy exposing the token to plugins, I prefer to hide it if possible to prevent mis-use. This change allows plugins to logout users. | ||||
* | Export Context | Simon Ser | 2019-12-11 | 1 | -9/+14 |
| | | | | This allows plugins to access it. | ||||
* | Allow plugins to add new routes | Simon Ser | 2019-12-10 | 1 | -0/+4 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/6 | ||||
* | Reconnect to IMAP server when logged out | Simon Ser | 2019-12-09 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | The session manager has been upgraded to deal with reconnections. Each session has its own expiration timer. Each time a request is received, the expiration timer is reset. A session can be closed (this is used when the user wants to logout). When the IMAP connection is closed by the server, it's set to nil in the session. The next time an IMAP command needs to be issued, the connection is re-established. Closes: https://todo.sr.ht/~sircmpwn/koushin/30 | ||||
* | Make SessionManager create the IMAP client | Simon Ser | 2019-12-09 | 1 | -1/+1 |
| | | | | | This will allow SessionManager to re-connect when the IMAP server logs the user out. | ||||
* | Rename ConnPool to SessionManager | Simon Ser | 2019-12-09 | 1 | -4/+4 |
| | |||||
* | Add a Lua API to set template filters | Simon Ser | 2019-12-09 | 1 | -4/+4 |
| | |||||
* | Add basic support for plugins | Simon Ser | 2019-12-09 | 1 | -0/+8 |
| | |||||
* | Extract HTTP handlers in separate file | Simon Ser | 2019-12-04 | 1 | -263/+2 |
| | |||||
* | Add basic theme support | Simon Ser | 2019-12-04 | 1 | -12/+21 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/1 | ||||
* | Make message view's Back link set the mailbox page | Simon Ser | 2019-12-03 | 1 | -4/+5 |
| | | | | | | | This allows to go back and forth between the mailbox view and the message view. References: https://todo.sr.ht/~sircmpwn/koushin/22 | ||||
* | Add basic pagination to message list | Simon Ser | 2019-12-03 | 1 | -1/+22 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/22 | ||||
* | Fix missing OutgoingMessage.InReplyTo assignment | Simon Ser | 2019-12-03 | 1 | -9/+5 |
| | |||||
* | Add basic support for multiple recipients | Simon Ser | 2019-12-03 | 1 | -3/+2 |
| | |||||
* | Add support for replying to a message | Simon Ser | 2019-12-03 | 1 | -5/+59 |
| | |||||
* | Add empty CSS stylesheet | Simon Ser | 2019-12-03 | 1 | -1/+1 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/19 | ||||
* | Escape mailbox names in URLs | Simon Ser | 2019-12-03 | 1 | -2/+10 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/14 | ||||
* | Add session lock | Simon Ser | 2019-12-03 | 1 | -12/+33 |
| | | | | | | | HTTP requests can be processed in parallel, but we only have one IMAP connection per session. Closes: https://todo.sr.ht/~sircmpwn/koushin/12 | ||||
* | Pre-fill composer with sender address | Simon Ser | 2019-12-03 | 1 | -7/+13 |
| | |||||
* | Add basic SMTP support | Simon Ser | 2019-12-03 | 1 | -2/+41 |
| | |||||
* | Save username/password in session | Simon Ser | 2019-12-03 | 1 | -2/+6 |
| | | | | | This is required for authenticating with the SMTP server when composing a new message. |