2019-03-31 18:10:32 +00:00
|
|
|
Developer Notes
|
|
|
|
===
|
2019-03-31 14:02:05 +00:00
|
|
|
|
2019-03-31 16:57:26 +00:00
|
|
|
## Preparing for running the code
|
|
|
|
|
2019-03-31 18:10:32 +00:00
|
|
|
**Notice:** *There's [specialised instructions for docker](../setup/docker.md) or [heroku](../setup/heroku.md), if you prefer running code this way!*
|
2019-03-31 16:57:26 +00:00
|
|
|
|
2019-03-31 18:10:32 +00:00
|
|
|
1. Clone the repository with `git clone https://github.com/codimd/server.git codimd-server`
|
|
|
|
(cloning is the preferred way, but you can also download and unzip a release)
|
2019-03-31 16:57:26 +00:00
|
|
|
2. Enter the directory and run `bin/setup`, which will install npm dependencies
|
|
|
|
and create configs. The setup script is written in Bash, you would need bash
|
|
|
|
as a prerequisite.
|
|
|
|
3. Setup the [config file](../configuration-config-file.md) or set up
|
|
|
|
[environment variables](../configuration-env-vars.md).
|
|
|
|
|
|
|
|
|
|
|
|
## Running the Code
|
|
|
|
|
|
|
|
Now that everything is in place, we can start CodiMD:
|
|
|
|
|
|
|
|
4. `npm run build` will build the frontend bundle. It uses webpack to do that.
|
|
|
|
5. Run the server with `node app.js`
|
|
|
|
|
|
|
|
|
|
|
|
## Running the Code with Auto-Reload
|
|
|
|
|
|
|
|
The commands above are fine for production, but you're a developer and surely
|
|
|
|
you want to change things. You would need to restart both commands whenever you
|
|
|
|
change something. Luckily, you can run these commands that will automatically
|
|
|
|
rebuild the frontend or restart the server if necessary.
|
|
|
|
|
|
|
|
The commands will stay active in your terminal, so you will need multiple tabs
|
|
|
|
to run both at the same time.
|
|
|
|
|
|
|
|
4. Use `npm run dev` if you want webpack to continuously rebuild the frontend
|
|
|
|
code.
|
|
|
|
5. To auto-reload the server, the easiest method is to install [nodemon](https://www.npmjs.com/package/nodemon)
|
|
|
|
and run `nodemon --watch app.js --watch lib --watch locales app.js`.
|
|
|
|
|
|
|
|
|
2019-03-31 14:02:05 +00:00
|
|
|
## Structure
|
|
|
|
|
2019-03-31 16:57:26 +00:00
|
|
|
The repository contains two parts: a server (backend) and a client (frontend).
|
|
|
|
most of the server code is in `/lib` and most of the client code is in `public`.
|
|
|
|
|
2019-03-31 14:02:05 +00:00
|
|
|
```text
|
2019-03-31 16:57:26 +00:00
|
|
|
codimd-server/
|
2019-03-31 14:02:05 +00:00
|
|
|
├── docs/ --- documentation
|
2019-03-31 16:57:26 +00:00
|
|
|
├── lib/ --- server code
|
|
|
|
├── test/ --- test suite
|
|
|
|
└── public/ --- client code
|
2019-03-31 14:02:05 +00:00
|
|
|
├── css/ --- css styles
|
|
|
|
├── docs/ --- default documents
|
|
|
|
├── js/ --- js scripts
|
|
|
|
├── vendor/ --- vendor includes
|
|
|
|
└── views/ --- view templates
|
|
|
|
```
|