summaryrefslogtreecommitdiff
path: root/Readme.md
blob: b316f83d533ebb3948b99a5397e7267062a4561e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# OKCMS

> "Pretty good"
>
> - Steve Jobs

## To run the demo:

- npm install
- cd examples
- node index

Server will be running on http://lvh.me:1337/

Admin area available on http://lvh.me:1337/admin/

## Config

To access the admin area, you need to set a username and password.
To do that create a file called `.env` in the project directory with
the following contents:

```
OK_USER=username
OK_PASS=password
```

S3 needs to be configured in the same way:

```
S3_KEY=s3key
S3_SECRET=s3secret
S3_BUCKET=bucketname
```

## Deploy

Every OKCMS install is deployed with pm2.

`pm2 start index.js --name [id]`

`pm2 restart [id]`

`pm2 logs`

to see logs and

`pm2 list`

to see running processes and

`pm2 show [id]`

for more process info.

## Schema

Valid datatypes include:

- string
- text
- number
- enum
- foreign-key
- video
- image
- date
- flag
- tag-list
- link-list
- media-list
- captioned-image-list
- double-captioned-image-list
- triple-captioned-image-list
- meta

### Notes

- ALL records should have a title. this is used to generate the ID.
- add an `alias` attribute to retitle fields in the admin view
- foreign keys: list `key` attribute pointing at the other table
- gallery/image-list can have caption or caption1/caption2/caption3 on the spec

### Dashboard resources

```
      dashboard: {
        resources: {
          flour: {
            display: "image",
          },
          bread: {
            title: "type",
            subtitle: "title",
          },
          artwork: {
            groupBy: "artist",
          },
        },
      },
```

## Local S3

If you don't want to use S3 and you have enough disk space locally, you can just write them locally. Supply these options to the S3 service configuration (pathss with trailing slash!).

```
local: {
  localPath: "/home/username/my-cool-website-pro/public/local-files/",
  remotePath: "/local-files/",
},
```