2020-08-13 10:41:11 +02:00
|
|
|
# umami
|
|
|
|
|
2020-08-17 06:28:54 +02:00
|
|
|
## Installation
|
2020-08-13 10:41:11 +02:00
|
|
|
|
2020-08-17 06:28:54 +02:00
|
|
|
### Get the source code
|
2020-08-13 10:41:11 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
git clone https://github.com/mikecao/umami.git
|
|
|
|
```
|
|
|
|
|
2020-08-18 01:46:13 +02:00
|
|
|
### Go into the repo folder
|
2020-08-13 10:41:11 +02:00
|
|
|
|
|
|
|
```
|
|
|
|
cd umami
|
|
|
|
```
|
|
|
|
|
2020-08-17 06:28:54 +02:00
|
|
|
### Install packages
|
|
|
|
|
|
|
|
```
|
|
|
|
npm install
|
|
|
|
```
|
|
|
|
|
2020-08-13 10:41:11 +02:00
|
|
|
### Create database tables
|
|
|
|
|
2020-08-17 06:28:54 +02:00
|
|
|
Umami supports [MySQL](https://www.mysql.com/) and [Postgresql](https://www.postgresql.org/).
|
|
|
|
Create a database for your Umami installation and install the tables with the included scripts.
|
2020-08-13 10:41:11 +02:00
|
|
|
|
|
|
|
For MySQL:
|
|
|
|
|
|
|
|
```
|
|
|
|
mysql -u username -p databasename < sql/schema.mysql.sql
|
|
|
|
```
|
|
|
|
|
|
|
|
For Postgresql:
|
|
|
|
|
|
|
|
```
|
|
|
|
psql -h hostname -U username -d databasename -f sql/schema.postgresql.sql
|
|
|
|
```
|
|
|
|
|
|
|
|
### Configure umami
|
|
|
|
|
|
|
|
Create an `.env` file with the following
|
|
|
|
|
|
|
|
```
|
|
|
|
DATABASE_URL=(connection url)
|
|
|
|
HASH_SALT=(any random string)
|
|
|
|
```
|
|
|
|
|
|
|
|
The connection url is in the following format:
|
|
|
|
```
|
|
|
|
postgresql://username:mypassword@localhost:5432/mydb
|
|
|
|
|
|
|
|
mysql://username:mypassword@localhost:3306/mydb
|
|
|
|
```
|
|
|
|
|
2020-08-18 01:46:13 +02:00
|
|
|
The `HASH_SALT` is used to generate unique values for your installation.
|
2020-08-17 06:28:54 +02:00
|
|
|
|
|
|
|
### Generate database client
|
|
|
|
|
|
|
|
Depending on your database type, run the appropriate script.
|
|
|
|
|
|
|
|
For MySQL:
|
2020-08-13 10:41:11 +02:00
|
|
|
|
|
|
|
```
|
2020-08-17 06:28:54 +02:00
|
|
|
npm run build-mysql-client
|
|
|
|
```
|
|
|
|
|
|
|
|
For Postgresql:
|
|
|
|
|
|
|
|
```
|
|
|
|
npm run build-postgresql-client
|
2020-08-13 10:41:11 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Create a production build
|
|
|
|
|
|
|
|
```
|
|
|
|
npm run build
|
2020-08-17 06:28:54 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Start the application
|
|
|
|
|
|
|
|
```
|
|
|
|
npm start
|
|
|
|
```
|
|
|
|
|
|
|
|
By default this will launch the application on `http://localhost:3000`. You will need to either
|
|
|
|
[proxy](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) requests from your web server
|
2020-08-17 09:05:57 +02:00
|
|
|
or change the [port](https://nextjs.org/docs/api-reference/cli#production) to serve the application directly.
|
|
|
|
|
2020-08-19 08:57:53 +02:00
|
|
|
### Start the application with pm2 and custom port
|
|
|
|
|
|
|
|
Add the custom port (here '-p 3010') at the start script:
|
|
|
|
|
|
|
|
```json
|
|
|
|
"scripts": {
|
|
|
|
"dev": "next dev",
|
|
|
|
"build": "next build",
|
|
|
|
"start": "next start -p 3010",
|
|
|
|
"build-tracker": "rollup -c rollup.tracker.config.js",
|
|
|
|
"build-mysql-schema": "dotenv prisma introspect -- --schema=./prisma/schema.mysql.prisma",
|
|
|
|
"build-mysql-client": "dotenv prisma generate -- --schema=./prisma/schema.mysql.prisma",
|
|
|
|
"build-postgresql-schema": "dotenv prisma introspect -- --schema=./prisma/schema.postgresql.prisma",
|
|
|
|
"build-postgresql-client": "dotenv prisma generate -- --schema=./prisma/schema.postgresql.prisma"
|
|
|
|
},
|
|
|
|
```
|
|
|
|
|
|
|
|
Start the application with pm2:
|
|
|
|
|
|
|
|
```
|
|
|
|
pm2 start npm --name "unami" -- start
|
|
|
|
```
|
|
|
|
|
2020-08-17 09:05:57 +02:00
|
|
|
## License
|
|
|
|
|
2020-08-19 08:57:53 +02:00
|
|
|
MIT
|