Skip to content

jethrodaniel/notes

Repository files navigation

notes

A simple note-taking web app.

Note

This is a hobby project, don't expect stability, documentation, security fixes, etc.

Setup

  1. Install dependencies: ruby, yarn, and sqlite3
  2. Clone this repo: git clone https://github.com/jethrodaniel/notes && cd notes
  3. Run a one-time setup script: bin/setup
  4. Run the application locally: bin/dev

Visit http://localhost:3000 in your browser, and sign in with these credentials:

email: [email protected]
password: password

Testing

  1. Install test dependencies: yarn and chromium
  2. Run the tests: bin/ci

Deploy

  1. Run a local docker registry: docker run -d -p 5000:5000 --restart always --name registry registry:2
  2. Edit config/credentials/production.yml and config/credentials/staging.yml as needed, e.g:
bin/rails credentials:edit -e production
secret_key_base: your-secret-key-base

kamal:
  proxy_host: your.deploy.url
  server: 192.123.456.789
  ssh_user: username
  volume_storage: notes_production_storage:/rails/storage

smtp:
  user_name: username
  password: password
  address: your.smtp.address
  host: your.smtp.host
  port: 123
  authentication: TODO
  host: your.deploy.url
  from: [email protected]
  1. Setup bitwarden secrets manager:
  • Create 2 projects, notes-production and notes-staging, and provide RAILS_MASTER_KEYs for each.
  • Install bws
  • Configure bws (e.g, cp -v .env.example .env, edit as needed, . .env)

Then deploy:

bin/kamal deploy -d staging
bin/kamal deploy -d production

Logo

To generate the favicon.ico:

inkscape app/assets/images/icon.svg --export-width=256 --export-filename=tmp.png
convert tmp.png -define icon:auto-resize=256,64,48,32,16 app/assets/images/favicon.ico
rm tmp.png

I18n

Users can change their language in-app to either English or Spanish.

Non-logged in pages (e.g, sign-in) aren't translated yet.

Spanish datetime.distance_in_words translations are from svenfuchs/rails-i18n (MIT).

License

Notes is released under the GNU Affero General Public License Version 3 (AGPLv3) or any later version.

Copyright 2025 Mark Delk. All rights reserved.

Contributing

While the code is released under the AGPL, I'd still like to be able to release it under something like the MIT license eventually.

To that end, contributions aren't accepted (yet).