# CodiMD Manual Deployment Manual deployment is the best when you're developing CodiMD. If you are deploying the service for production use, [Docker Deployment](/s/codimd-docker-deployment) is the faster and easier choice. ## Requirements - Node.js 10.x LTS up to 11.x. - Database (PostgreSQL or MySQL) - Use charset `utf8` :::info :bulb: **Hint**: - You could use other DBMS, such as: MariaDB, SQLite, or MSSQL, **BUT** we recommend only PostgreSQL or MySQL. - We will only support PostgreSQL and MySQL in future database migrations, if any. ::: - npm - npm dependencies: - [node-gyp](https://github.com/nodejs/node-gyp#installation) - `libssl-dev` for building scrypt (see [here](https://github.com/ml1nk/node-scrypt/blob/master/README.md#installation-instructions) for further information) - Bash (for the setup script) - For **building** CodiMD we recommend using a machine with at least **2GB** RAM ## Deployment Steps 1. Clone the [CodiMD repository](https://github.com/hackmdio/codimd.git). ```bash= git clone https://github.com/hackmdio/codimd.git ``` 2. Enter the directory, install npm dependencies and create configs. ```bash= cd codimd bin/setup ``` 3. Configure the instance with: - config file, see [Configuring CodiMD with `config.json`](/s/codimd-configuration) - or environment variables, see [Configuring CodiMD with Environment Variables](/s/codimd-configuration) - **Note:** The environment variables will overwrite the `config.json`. 4. Build front-end bundle with [webpack](/s/codimd-webpack). ```bash= npm run build ``` 5. Modify the file named `.sequelizerc`, change the value of the variable `url` with your db connection string. For example: `postgres://username:password@localhost:5432/codimd` 6. Start the engine: ```bash= node app.js ``` :::info :bulb: **Hint:** If you are developing and want webpack to continuously rebuild the front-end code, use: ```bash= npm run dev ``` To auto-reload the server, you could use [nodemon](https://www.npmjs.com/package/nodemon) and run: ```bash= nodemon --watch app.js --watch lib --watch locales app.js. ``` ::: ###### tags: `CodiMD` `Docs`