Coder Social home page Coder Social logo

seratch / sharedocs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from atware/scuruto

0.0 3.0 0.0 13.66 MB

An internal knowledge sharing app

License: MIT License

Shell 4.72% Scala 77.41% HCL 0.14% CSS 6.56% JavaScript 6.80% Batchfile 4.38%

sharedocs's Introduction

Sharedocs

Responsive

Sharedocs

An internal knowledge sharing app.

โ˜๏ธ Sharedocs Demo Site

or

Heroku Deploy

System Requirements

  • Scala 2.11 or 2.12
  • PostgreSQL 9.5.x or 9.6.x

Setup for Development Environment

Setup PostgreSQL

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

Prepare Tables

mac/*nix

./sharedocs db:migrate

Windows

./sharedocs.bat db:migrate

Set Environment Variables to sharedocsEnv script

mac/*nix

cp sharedocsEnv-template sharedocsEnv

Windows

cp sharedocsEnv-template.bat sharedocsEnv.bat
Environment Variables

| 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 providor
app - Login with email/password
google - 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 destination
local - upload to local disk
s3 - 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/" |

Run Application

mac/*nix

./sharedocs run

Windows

./sharedocs.bat run

Additional setup for Development Environment

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.

External service settings

Google APIs

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

Amazon S3

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

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

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>

Lisence

MIT License

sharedocs's People

Contributors

roundrop avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.