All Projects → mdouchement → Standardfile

mdouchement / Standardfile

Licence: mit
Yet Another Standardfile (standardnotes server) Implementation written in Golang

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Standardfile

jot
Command-line note-taking for minimalists
Stars: ✭ 24 (-29.41%)
Mutual labels:  notes, text-editor
writebar
Experimental distraction-free text editor, based on the Macbook pro TouchBar
Stars: ✭ 37 (+8.82%)
Mutual labels:  notes, text-editor
Course julia day
Notes for getting to know the Julia programming language in one day.
Stars: ✭ 23 (-32.35%)
Mutual labels:  notes
Ably Go
Go client library SDK for Ably realtime messaging service
Stars: ✭ 29 (-14.71%)
Mutual labels:  client-library
Instanote
Note keeping done in PHP 5.2 and JSON
Stars: ✭ 11 (-67.65%)
Mutual labels:  notes
Iosinterviewsanddevnotes
🚴 iOS面试题 (iOS interview) && iOS Dev Notes ,Git ...
Stars: ✭ 930 (+2635.29%)
Mutual labels:  notes
Kakoune
mawww's experiment for a better code editor
Stars: ✭ 7,593 (+22232.35%)
Mutual labels:  text-editor
Lem
Common Lisp editor/IDE with high expansibility
Stars: ✭ 894 (+2529.41%)
Mutual labels:  text-editor
Machine Learning Notebooks
Assorted exercises and proof-of-concepts to understand and study machine learning and statistical learning theory
Stars: ✭ 33 (-2.94%)
Mutual labels:  notes
Release It
notes for 'Release It' by Michael T. Nygard
Stars: ✭ 10 (-70.59%)
Mutual labels:  notes
Notes
📝 Simple delightful note taking, with more unix and less lock-in.
Stars: ✭ 939 (+2661.76%)
Mutual labels:  notes
Liquid
Clojure Text Editor, for editing clojure code and markdown. Written entirely in Clojure with inspiration from Emacs and Vim.
Stars: ✭ 859 (+2426.47%)
Mutual labels:  text-editor
R Notes
Notes for using R language to do data mining and machine learning (Chinese)
Stars: ✭ 25 (-26.47%)
Mutual labels:  notes
Codimd
CodiMD - Realtime collaborative markdown notes on all platforms.
Stars: ✭ 7,592 (+22229.41%)
Mutual labels:  notes
Code Notes
A simple code snippet & gist manager for developers built with Electron & Vue.js 🚀
Stars: ✭ 919 (+2602.94%)
Mutual labels:  notes
Learningprocess
💥 本仓库用于记录我的学习历程和学习笔记
Stars: ✭ 31 (-8.82%)
Mutual labels:  notes
Edinote
Note taking web application for self-hosting. Offers tagging & Markdown support; can be used as a simple alternative to Evernote.
Stars: ✭ 17 (-50%)
Mutual labels:  text-editor
Notes
Notes, Questions, Ideas
Stars: ✭ 8 (-76.47%)
Mutual labels:  notes
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+2485.29%)
Mutual labels:  notes
Notes
📝 Migrated to(迁移至) https://github.com/Kuangcp/Note 当前仓库已经废弃, 对应的博客网站:
Stars: ✭ 33 (-2.94%)
Mutual labels:  notes

Yet Another Standardfile Implementation in Go

GoDoc Go Report Card License

This is a 100% Golang implementation of the Standard File protocol. It aims to be portable and lightweight.

Running your own server

You can run your own Standard File server, and use it with any SF compatible client (like Standard Notes). This allows you to have 100% control of your data. This server implementation is built with Go and can be deployed in seconds.

https://hub.docker.com/r/mdouchement/standardfile

Client library

Go to pgk/libsf for more details. https://godoc.org/github.com/mdouchement/standardfile/pkg/libsf

It is an alternative to https://github.com/jonhadfield/gosn

SF client

go run cmd/sfc/main.go -h

Terminal UI client: sfc note

Requirements

  • Golang 1.11.x (Go Modules)

Technologies / Frameworks

Differences with reference implementation

Drop legacy support for clients which hardcoded the "api" path to the base url (iOS)

Permalink

Drop the POST request done on Extensions (backups too)

Permalink

This feature is pretty undocumented and I feel uncomfortable about the outgoing traffic from my server on unknown URLs.

Drop V1 support

All stuff used in v1 and not in v2 nor v3

JWT revocation strategy after password update

Reference implementation use a pw_hash claim to check if the user has changed their pw and thus forbid them from access if they have an old jwt.


Here we will revoke JWT based on its iat claim and User.PasswordUpdatedAt field. Looks more safer than publicly expose any sort of password stuff. See internal/server/middlewares/current_user.go

Session use PASETO tokens instead of random tokens

Here we will be using PASETO to strengthen authentication to ensure that the tokens are issued by the server.

Not implemented (yet)

  • 2FA (aka verify_mfa)
  • Postgres if a more stronger database is needed
  • A console for admin usage

License

MIT

Contributing

All PRs are welcome.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].