NightWriter is a modern real-time collaborative editing tool secured by end-to-end encryption.

Related tags

Docs NightWriter
Overview

NightWriter

GitHub stars GitHub forks

logo

⚠️ It's an alpha release, use it at your own risk

Another creation document tool ?

After many years of searching for a good document tool that is simple, secure and modern, I decided to develop it. NightWriter offers simple, secured by end-to-end encryption and real-time collaborative editing.

Markdown is the markup language. As NightWriter exports your documents in markdown, you can easily convert them in many formats. For example, if you want convert into a docx file, you can use my other project MDdot

Security

The end to end encryption is based on RSA and AES 256. When you create your account, a keypair is generated and the stored private key is encrypted by your master password. Documents are encrypted by AES 256 and the key is encrypted with the public key of the user or the group before to be send to the server.

The server never knows the passwords or even the content of your documents.

The cryptography implementation is done by Forge which is widely used.

Open Source Components

NightWriter is built on Go, Gin and GORM for the backend and Vue3, Tui.Editor and tailwindcss for the front.

How to test it locally ?

The manual way

Prequesites

  • Go (in 1.16.x)
  • Node (in 16.x) & npm (in 7.x)

Step

Clone this repository and execute:

cd NightWriter
docker-compose up -d
cd front
npm install .
npm run build
cd ../server
cp ../front/dist .
go build

Enjoy !

How to install on a server ?

On the host

The frontend

The frontend uses vitejs

Prequesite: node 16.x

cd front
npm intall .
npm run .

The server

Prequesite: go 1.16+

cd server
go run .

With docker compose

Prequesites: Docker and Docker Compose

  1. Clone the repo : git clone https://github.com/Titanexx/NightWriter && cd NightWriter
  2. Launch the server:
    1. Build the frontend : docker-compose run frontend
    2. Start the server : docker-compose up" (or "docker-compose up -d" if you want detach it)
  • Rebuild the server:
  1. docker-compose stop
  2. docker-compose build server
  3. docker-compose up
  • Rebuild the frontend:
  1. docker-compose run frontend
  2. docker-compose restart

How dev on NightWriter ?

You need 2 terminals, one for the frontend and the other for the server. Once your are inside each folder (front and server), run : docker-compose up

The docker for the front has hotreloading but not the server's docker. You need to stop it and run again at each modifications.

Licenses

NightWriter is dual-licensed - Copyright 2021 Titanex

If you want commercialize service which include NightWriter, you need a commercial, non-free license. If you want a direct support or specific development, you need a non-free license. Otherwise, NightWriter can be used without charge under the terms of GPLv3.

Support

How support ?

You can contribute to the project. There is still a lot to do and I have many ideas for the future. You can support by buying , 🍵 or 🍻 https://www.buymeacoffee.com/titanex

Other support ways are coming.

Why support the tool ?

As I used many awesome open source project, I want support some of them. As the project requires a significant investment of time, even a simple coffee will help me to continue the development.

You might also like...
This project is the fontend for a collaborative shift managment for cooperative supermarkets.

collectivo frontend A vue.js based web application for collectivo. Run collectivo-ux Run the following command to start the app (it needs docker and d

✍️ Vue binding for countable.js. Provides real-time paragraph, sentence, word, and character counting.

vue-countable Vue binding for countable.js. Provides real-time paragraph, sentence, word, and character counting. Demo View Demo | View on NPM | View

Traveliko - Travel with Friends ~ Web application prepared using Google Street View API that allows you to real-time travel with your friends in the same place in street view mode.
Traveliko - Travel with Friends ~ Web application prepared using Google Street View API that allows you to real-time travel with your friends in the same place in street view mode.

Traveliko - Travel with Friends! You can create a room with your friends and travel in street view mode and navigate the map. The application basicall

Directus is a real-time API and App dashboard for managing SQL database content.
Directus is a real-time API and App dashboard for managing SQL database content.

Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.

TICE is a secure app for meeting up, sharing locations and locating friends and family in real-time.
TICE is a secure app for meeting up, sharing locations and locating friends and family in real-time.

TICE is a secure app for meeting up, sharing locations and locating friends and family in real-time. TICE allows live location sharing on iOS, Android and the Web. Privacy by Design and modern end-to-end-encryption protect the sensitive location data from others.

Real-time note-taking with syntax highlighting.
Real-time note-taking with syntax highlighting.

Noted noted.yeger.eu Real-time note-taking with syntax highlighting. Features ✏️ Note-taking in markdown format with real-time preview 🖥 Syntax highl

Easy implementation of real-time communication using WebRTC by using Firebase

Easy implementation of real-time communication using WebRTC by using Firebase

A markdown project to preview in real time when user write notes in markdown
A markdown project to preview in real time when user write notes in markdown

markdown-project The notebook app will allow the user to write notes in markdown The markdown will be previewed in real time The users will be able to

Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates.
Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates.

Discuss with Atinux Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates. See it live on https://discuss.atinux.

 Discuss with Atinux  Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates.
Discuss with Atinux Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates.

Discuss with Atinux Demo of using Nuxt 3 with GitHub authentication and creating issues with real-time updates. See it live on https://discuss.atinux.

Markdown note-taking with syntax highlighting and real-time preview.
Markdown note-taking with syntax highlighting and real-time preview.

Noted noted.yeger.eu Markdown note-taking with syntax highlighting and real-time preview. Features ✏️ Note-taking in Markdown format with real-time pr

This is a website to build and deploy custom real-time classroom environments
This is a website to build and deploy custom real-time classroom environments

vue-node-sendit This is a website to build and deploy custom real-time classroom environments. Frontend: Vue.js Backend: Node.js Database: MySQL This

Get Real-time Random Words with Definition and Pronunciation.

Random Words 🔀 Random Words - Get Random Words with Definition and Pronunciation. Features ✨ Realtime Words data Progressive Web App Sitemap RSS feed

Real Time Chat Application created with VueJS, Express, Socket IO and MongoDB/Mongoose/Mongo Altas.
Real Time Chat Application created with VueJS, Express, Socket IO and MongoDB/Mongoose/Mongo Altas.

🌠 Astro Chat 🌠 Real Time Chat Application created with VueJS, Express, Socket IO and MongoDB/Mongoose/Mongo Altas. Contents Demo Tech Stack Features

Coin-exange - This is a litle proyect make to practice, only show the value of cryptocoins in real time

platzi-exchange Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build

Vue live real-time avatar from your webcam in the browser.

Vitar Vue live real-time avatar from your webcam in the browser. Get Started Npm $ npm install @cloudgeek/vitar --save Yarn $ yarn add @cloudgeek/vita

Dacxi Frontend Test Bitcoin historical and real-time quotes
Dacxi Frontend Test Bitcoin historical and real-time quotes

Dacxi Frontend Test Cotação histórica e em tempo real do Bitcoin 📸 Screenshots da aplicação: Linkedin | Email: [email protected] | (85) 98514

Dashboard using OPC UA and real-time bidirectional communication applied to SMAR's PD3-F teaching plant
Dashboard using OPC UA and real-time bidirectional communication applied to SMAR's PD3-F teaching plant

Dashboard using OPC UA and real-time bidirectional communication applied to SMAR's PD3-F teaching plant

Real-time multiplayer game where you place colored pixels on a giant paintings
Real-time multiplayer game where you place colored pixels on a giant paintings

⚡ Vite + Vue 3 + Tailwind CSS ✔ This starter template includes: Vite Vue 3 Tailwind CSS v3 Vue Router v4 Inter var font (self-hosted, woff2, v3.19, wi

Comments
  • chore: better registration message

    chore: better registration message

    By the way

    Keys generation can be long

    Virtual machines (even more for headless servers) have low entropy so generating keys can be quite long, it's often advices to install an additional PRNG engine such as Haveged or rng-tools to have more entropy.

    opened by noraj 2
Owner
Titanex
Hacker ? Pentester ? Dev ? CTF player? One thing is for sure, I like security and development !
Titanex
NoteHub is an online note sharing platform where users can edit notes with a versatile rich-text editor in a real-time collaborative environment.

NoteHub is an online note sharing platform where users can edit notes with a versatile rich-text editor in a real-time collaborative environment. NoteHub also provides notes sharing features between individuals or communities, and even more advanced features such as AI assistance, including content summarization, Q&A, voice to text transcription, and handwritten text recognition.

null 15 Aug 16, 2022
🖥️ Screen Share via Piping Server with End-to-End Encryption

piping-screen-share Screen Share via Piping Server with End-to-End Encryption Application https://piping-screen-share.netlify.com URL fragment paramet

Ryo Ota 55 Nov 18, 2022
The Vue SDK you need to interact with Storyblok API and enable the Real-time Visual Editing Experience.

@storyblok/vue The Vue SDK you need to interact with Storyblok API and enable the Real-time Visual Editing Experience. Note: This plugin is for Vue 3.

Storyblok 57 Nov 14, 2022
A collaborative pixel art web tool for creating new art every day.

workart Try now: https://workart.pages.dev/ A collaborative pixel art web tool for creating new art every day. About Built for the Cloudflare Develope

Darren Jennings 5 Sep 23, 2021
Tomato5 is a real-time collaboration tool.

Tomato5 is a real-time collaboration tool. It combines Pomodoro Technique with a team status share board. Homepage: http://tomato5.io Updates 1.3.0 Ne

Zhang Xin 241 Nov 3, 2022
Secured & Simple Supabase Schema Visualizer

Supabase Schema Secured & Simple Supabase Schema Visualizer. No installations • No Database password required. View Demo · Report Bug · Request Featur

zernonia 407 Nov 21, 2022
KéMeet is a Simple, beautiful, fast and secured Open-source zoom alternative, 100% FREE forever!

KéMeet is a Simple, beautiful, fast and secured Open-source zoom alternative, 100% FREE forever! Simply enter a meeting room ID and connect to anyone else in that room! You can even share your screen if you are on desktop!

fotiecodes 31 Jul 6, 2022
Real Estate Pub-Sub - Real Estate PubSub Model With Vue

Real Estate PubSub Model Introduction In the Real Estate Pub/Sub System, when a

null 0 Jan 8, 2022
basic public music player, keeps contributors music. (collaborative playlist) 🎵

basic public music player, keeps contributors music. (collaborative playlist) ??

Davi Guimarães 75 Nov 23, 2022