Sign inSign up

arekxv/note-me

By arekxv

Updated about 1 month ago

NoteMe is a simple and powerful note app to own your notes and have them organized.

Image
Developer tools
Web servers
Content management system
0

987

arekxv/note-me repository overview

NoteMe

NoteMe is a simple, note-taking app with powerful features which help you to keep the ownership of your notes and keep them organized however you see fit.

Features

  • Markdown support. Notes are written and shown using markdown. All standard markdown syntax is supported with additional flavors like task lists, footnotes, tables and extensions special to NoteMe like showing dynamic table of contents, note links and listing notes from a specific group.
  • Organize your notes. You can tag your notes, store them in any kind of groups or subgroups making it easy to create an exact structure you want.
  • Multiple users welcome. NoteMe supports multiple users with different roles, each user has its own space for notes so that everyone on the same NoteMe server can have their own folder structure.
  • Sharing notes. Notes created can be shared internally between users or to everyone outside by creating a share link.
  • Remind yourself of important notes. You can set one-time or recurring reminders for your own notes or the notes shared with you so that you never forget an important task.
  • History of changes. Every saved change to your note is recorded in the history so that you can easily compare changes or go back and forward in time.
  • Note files. You can upload any kind of file into NoteMe and use it in your notes as an image or make it downloadable. Files can be made private or public so that you can control who has access to them.
  • Protect your notes. Notes can be protected with your password meaning they will be encrypted at rest in the database so that nobody except you can see their contents, not even administrators, not even by anyone accessing the database directly.
  • Backup support. Daily backups can be created by NoteMe and stored on the server location or on AWS S3. You can specify multiple backup targets so that you can backup to more than one place.
  • Easy login with Passkeys. You can setup a login into your notes by only using secure Passkey standard without even needing to enter a password.
  • Import/Export your data. You can import all of your existing notes into NoteMe or create a full export of all of your notes and files.
  • Recycled Notes. Deleted notes are kept in recycle bin for 30 days and can be retrieved by you at any time or fully deleted.
  • Easily hostable. NoteMe can easily be run on any system running Deno with minimal configuration, or you can run it as a docker container using one of the prebuilt container images.

Running the container

Following environment variables are needed to be set. You can set them in .env file for convenience:

# Location of the SQLite database file, use :memory: for in memory database, defaults to :memory:
SQLITE_DATABASE_LOCATION=database.sqlite

# Hostname for the cookie, defaults to localhost, set this to your domain which you wish to use if hosting on a specific domain.
COOKIE_DOMAIN=localhost

# Use and require secure cookies, defaults to 1, disable if not using HTTPS.
COOKIE_SECURE=1

# Maximum age of the cookie in seconds, defaults to 30 days in seconds
COOKIE_MAX_AGE_SECONDS=2592000

# Address websocket and webserver should bind to, for docker it is set to 0.0.0.0
SERVER_ADDRESS=0.0.0.0

# Port for websocket service, defaults to 8080, this port must be exposed from Docker
WEBSOCKET_PORT=8080

# Port for webserver service, defaults to 8000, this port must be exposed from Docker
WEBSERVER_PORT=8000

# Logging level. Levels: DEBUG, INFO, WARN, ERROR, defaults to: INFO
LOGGING_LEVEL=INFO

# Whether or not to color log entries, defaults to 1
SHOW_LOG_COLORS=1

# Whether to disable periodic tasks service, defaults to 0
DISABLE_SERVICE_PERIODIC_TASKS=0

# Whether to run migrations on startup, defaults to 1
RUN_MIGRATIONS_ON_STARTUP=1

# Maximum file size allowed for uploads in bytes, defaults to 52428800 (50MB)
MAX_FILE_SIZE=52428800

# Frontend url for Websocket connection, defaults to ws://localhost:8080, set to ws or wss://{yourdomain}:{PORT} if hosting on your own domain, use ws or wss depending if using HTTPS.
SOCKET_HOSTNAME=ws://localhost:8080

# Maximum number of backup files to keep, defaults to 5, set to 0 to disable backups
# Backup is run once a day at midnight so limit of 5 means 5 last days of backups
MAX_ALLOWED_BACKUP_COUNT=5

# Application url, set to http or https://{yourdomain}. If port is standard HTTP/HTTPS port it can be omitted.
APP_URL=http://localhost:8000

Important: First run will create an administrator user with username admin and password admin. You will be required to set a new password after logging in.

Running the container is as simple as (assuming default configuration in .env):

docker run -p 8000:8000 -p 8080:8080 --env-file ./.env arekxv/note-me

Database is SQLite and stored inside the container. If you wish to use the database outside of the container then you need to mount a host volume:

Using your currend directory $(pwd) as the mount directory for database and setting SQLITE_DATABASE_LOCATION=/db/database.sqlite in your environment, you can run:

docker run -p 8000:8000 -p 8080:8080 --env-file ./.env -v $(pwd):/db/ arekxv/note-me

License

Copyright 2024 Aleksandar Panic

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Tag summary

Content type

Image

Digest

sha256:422283cd3

Size

165.9 MB

Last updated

about 1 month ago

docker pull arekxv/note-me