Memos is built with a curated tech stack. It is optimized for developer experience and is very easy to start working on the code:
- It has no external dependency.
- It requires zero config.
- 1 command to start backend and 1 command to start frontend, both with live reload support.
Working with Docker
Clone the repo
git clone https://github.com/usememos/memos
Use
docker-compose.dev.yaml
as default for Docker Compose, instead ofdocker-compose.yaml
reserved for normal usersecho 'COMPOSE_FILE=docker-compose.dev.yaml' > .env
Setup the environments
docker compose run api go install github.com/cosmtrek/air@latest docker compose run web npm install
Start your services:
docker compose up -d
Memos should now be running at http://localhost:3001 and change either frontend or backend code would trigger live reload.
Working without Docker
Prerequisite
- Node.js, requires version >=18.0
- pnpm, requires version >=8.0
- Go, requires Go >= 1.19
- Air for backend live reload
- Buf for generating TypeScript code from protobuf
Steps
Clone the repo
git clone https://github.com/usememos/memos
Start backend using air
air -c scripts/.air.toml
Generate TypeScript code from protobuf with buf
cd proto && buf generate
Start frontend dev server
cd web && pnpm i && pnpm dev
Memos should now be running at http://localhost:3001 and change either frontend or backend code would trigger live reload.