An internal knowledge sharing app.
or
- Install
- Run
docker-compose up
- access http://localhost:8080/
- Scala 2.11 or 2.12
- PostgreSQL 9.5.x or 9.6.x
Setup PostgreSQL server on your machine and create database.
$ createuser -P sharedocs
$ createdb -E UTF8 -T template0 --lc-collate=ja_JP.UTF-8 --lc-ctype=ja_JP.UTF-8 sharedocs
./sharedocs db:migrate
./sharedocs.bat db:migrate
cp sharedocsEnv-template sharedocsEnv
cp sharedocsEnv-template.bat sharedocsEnv.bat
| ENV name (*required) | Description | Example |
|:----|:----|:----|:----|
| SITE_NAME | site name for page header | "Sharedocs:CompanyName" |
| SITE_TITLE | site title for title
tag | "Sharedocs" |
| DATABASE_HOST * | datebase host | "localhost:5432" |
| DATABASE_DBNAME * | database name | "sharedocs" |
| DATABASE_USER * | database user | "user" |
| DATABASE_PASSWORD * | database password | "password" |
| GOOGLE_ANALYTICS_KEY | Google analytics key | "abcdefg" |
| LOGIN_PROVIDOR | login providorapp
- Login with email/passwordgoogle
- Login with Google+ account
default is app
| "google" |
| LOGIN_PERMITTED_EMAIL_DOMAINS | email domains to allow to login(comma-separeted)
allow to login any email address if empty | "yourcompany.co.jp" |
| SKINNY_OAUTH2_CLIENT_ID_GOOGLE | (if LOGIN_PROVIDOR==google)
Google OAuth2 API Key | "abcdefgabcdefg" |
| SKINNY_OAUTH2_CLIENT_SECRET_GOOGLE | (if LOGIN_PROVIDOR==google)
Google OAuth2 Secret Key | "abcdefgabcdefgabcdefg" |
| UPLOAD_DESTINATION | image file upload destinationlocal
- upload to local disks3
- upload to Amazon S3
default is local
| "s3" |
| LOCAL_UPLOAD_BASE_DIR | (if UPLOAD_DESTINATION==local)
base directory to upload image file | "/tmp" |
| LOCAL_UPLOAD_BASE_URL | (if UPLOAD_DESTINATION==local)
base url to access uploaded image file | "/static/uploads" |
| AWS_ACCESS_KEY | (if UPLOAD_DESTINATION==s3)
AWS access key | "abcdefg" |
| AWS_SECRET_KEY | (if UPLOAD_DESTINATION==s3)
AWS secret key | "abcdefgabcdefg" |
| AWS_S3_BUCKET | (if UPLOAD_DESTINATION==s3)
S3 bucket name | "sharedocs-xx" |
| AWS_S3_BASE_DIR | (if UPLOAD_DESTINATION==s3)
base pash to upload image file | "images/" |
| AWS_S3_BASE_URL | (if UPLOAD_DESTINATION==s3)
base url to access uploaded image file | "https://xxxxxxxx.s3.amazonaws.com/" |
./sharedocs run
./sharedocs.bat run
Setup npm command on your machine and install npm packages.
cd /path/to/sharedocs/dir
npm install
sharedocs uses webpack. You must execute the command when static resources are changed.
npm run webpack
Alternatively, you can use watch mode as follows:
npm run webpackw
After that, webpack recompiles static resources automatically after you change them.
You must setup as below if you want to login with Google+ account.
https://console.developers.google.com/apis/credentials/ (Google Developers Console - API Manager - Credentials)
[Create credentials] - [OAuth client ID] - [Web application]
Authorized redirect URIs
: http://localhost:8080/session/callback
You must setup as below if you want to upload files to Amazon S3.
https://console.aws.amazon.com/s3/
[Create Bucket] and then setting up bucket policy and CORS configuration.
Bucket Policy example:
[Bucket]-[Permissions]-[Edit bucket policy]
{
"Version": "2012-10-17",
"Id": "Policy*************",
"Statement": [
{
"Sid": "Stmt*************",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[bucket name]/*"
},
{
"Sid": "Stmt*************",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::[user id]:user/[user-name]"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::[bucket name]/*"
}
]
}
CORS Configuration example:
[Bucket]-[Permissions]-[Edit CORS Configuration]
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
If you want customize SharedocsEnv, you can customize environment valiables in docker-compose.yml .
- customize docker-compose.yml
app:
...
environment:
LOGIN_PERMITTED_EMAIL_DOMAINS: "yourcompany.co.jp"
MIT License