Brak opisu

Yuki Takei 03c44ea475 Merge pull request #1396 from weseek/support/include-dockerfile 6 lat temu
.github d1f0f9ec84 Revert "GitBook: [master] 12 pages modified" 7 lat temu
.vscode e0cda18d29 organize debugger environments 6 lat temu
bin afaed9c49a update app.json, install-packages.sh 6 lat temu
config 32f432e75f modify parsing process for migrate-mongo 6 lat temu
docker 351dae225c impl multi-stage build with buildkit 6 lat temu
public ff7e96709d remove passport logo 6 lat temu
resource b32b94fb84 i18n 6 lat temu
src 85fb312113 adjust info 6 lat temu
tmp 99e1768757 create imports/.keep 6 lat temu
.editorconfig 2d42c72e58 add .editorconfig 9 lat temu
.eslintignore d1895d0cfc ignore linter-checker dir 6 lat temu
.eslintrc.js b9d75395a0 organize eslint rules 6 lat temu
.gitignore 58ce05ca02 update .gitignore 6 lat temu
.prettierignore c160fc71f5 show error message when connection to agent is failed 6 lat temu
.prettierrc 4c699fe833 apply stylelint 7 lat temu
.stylelintrc.json d1895d0cfc ignore linter-checker dir 6 lat temu
CHANGES.md 859df53187 Merge remote-tracking branch 'origin/release' 6 lat temu
LICENSE 282f6c3101 Update LICENSE 8 lat temu
Procfile dbc71db496 fix Procfile 8 lat temu
README.md 98c92167e7 update docs 6 lat temu
THIRD-PARTY-NOTICES.md e120411d72 add EmojiOne to THIRD-PARTY-NOTICES.md 6 lat temu
app.json afaed9c49a update app.json, install-packages.sh 6 lat temu
babel.config.js 1e95261c3c ensure to configure babel with babel.config.js 6 lat temu
package.json de3e2484ea update engines 6 lat temu
wercker.yml be01f4b0be upgrade box of wercker to node:12-slim 6 lat temu
yarn.lock 7c61609f8e update engines 6 lat temu

README.md

Documentation / Demo

GROWI

wercker status dependencies status devDependencies Status docker pulls

Features

Quick Start for Production

Heroku

docker-compose

On-premise

Migration Guide from Crowi (en/ja) is here.

Development

Dependencies

  • Node.js v10.x (DON'T USE 11.x)
  • npm 6.x
  • yarn
  • MongoDB 3.x

See confirmed versions.

Optional Dependencies

Command details

|command|desc| |--|--| |npm run build:prod|Build the client| |npm run server:prod|Launch the server| |npm start|Invoke npm run build:prod and npm run server:prod|

For more info, see GROWI Docs: List of npm Commands.

Environment Variables

  • Required
    • MONGO_URI: URI to connect to MongoDB.
  • Option
    • NODE_ENV: production OR development.
    • PORT: Server port. default: 3000.
    • NO_CDN: If true, system doesn't use CDN, all resources will be downloaded from CDN when build client, and served by the GROWI Express server. default: false.
    • ELASTICSEARCH_URI: URI to connect to Elasticearch.
    • REDIS_URI: URI to connect to Redis (use it as a session store instead of MongoDB).
    • PASSWORD_SEED: A password seed used by password hash generator.
    • SECRET_TOKEN: A secret key for verifying the integrity of signed cookies.
    • SESSION_NAME: The name of the session ID cookie to set in the response by Express. default: connect.sid
    • SAML_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS: If true, the system uses only the value of the environment variable as the value of the SAML option that can be set via the environment variable.
    • PUBLISH_OPEN_API: Publish GROWI OpenAPI resources with ReDoc. Visit /api-docs.
    • FORCE_WIKI_MODE: Forces wiki mode. default: undefined
      • public : Forces all pages to become public
      • private : Forces all pages to become private
      • undefined : Publicity will be configured by the admin security page settings
    • FORMAT_NODE_LOG: If false, Output server log as JSON. defautl: true (Enabled only when NODE_ENV=production)
  • Option for file uploading
    • FILE_UPLOAD: Attached files storage. default: aws
      • aws : Amazon Web Service S3 (needs AWS settings on Admin page)
      • gcs : Google Cloud Storage (needs settings with environment variables)
      • mongodb : MongoDB GridFS (Setting-less)
      • local : Server's Local file system (Setting-less)
      • none : Disable file uploading
    • FILE_UPLOAD_DISABLED: If true, disabled file upload. However can view files. default: false
    • MAX_FILE_SIZE: The maximum file size limit for uploads (bytes). default: Infinity
    • FILE_UPLOAD_TOTAL_LIMIT: Total capacity limit for uploads (bytes). default: Infinity
    • GCS_API_KEY_JSON_PATH: Path of the JSON file that contains service account key to authenticate to GCP API
    • GCS_BUCKET: Name of the GCS bucket
    • GCS_UPLOAD_NAMESPACE: Directory name to create in the bucket
    • MONGO_GRIDFS_TOTAL_LIMIT: Total capacity limit of MongoDB GridFS (bytes). default: Infinity
      • MONGO_GRIDFS_TOTAL_LIMIT setting takes precedence over FILE_UPLOAD_TOTAL_LIMIT.
  • Option to integrate with external systems
    • HACKMD_URI: URI to connect to HackMD(CodiMD) server.
    • HACKMD_URI_FOR_SERVER: URI to connect to HackMD(CodiMD) server from GROWI Express server. If not set, HACKMD_URI will be used.
    • PLANTUML_URI: URI to connect to PlantUML server.
    • BLOCKDIAG_URI: URI to connect to blockdiag server.
  • Option (Overwritable in admin page)
    • APP_SITE_URL: Site URL. e.g. https://example.com, https://example.com:8080
    • LOCAL_STRATEGY_ENABLED: Enable or disable ID/Pass login
    • LOCAL_STRATEGY_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS: Prioritize env vars than values in DB for some ID/Pass login options
    • SAML_ENABLED: Enable or disable SAML
    • SAML_USES_ONLY_ENV_VARS_FOR_SOME_OPTIONS: Prioritize env vars than values in DB for some SAML options
    • SAML_ENTRY_POINT: IdP entry point
    • SAML_ISSUER: Issuer string to supply to IdP
    • SAML_ATTR_MAPPING_ID: Attribute map for id
    • SAML_ATTR_MAPPING_USERNAME: Attribute map for username
    • SAML_ATTR_MAPPING_MAIL: Attribute map for email
    • SAML_ATTR_MAPPING_FIRST_NAME: Attribute map for first name
    • SAML_ATTR_MAPPING_LAST_NAME: Attribute map for last name
    • SAML_CERT: PEM-encoded X.509 signing certificate string to validate the response from IdP
    • OAUTH_GOOGLE_CLIENT_ID: Google API client id for OAuth login.
    • OAUTH_GOOGLE_CLIENT_SECRET: Google API client secret for OAuth login.
    • OAUTH_GITHUB_CLIENT_ID: GitHub API client id for OAuth login.
    • OAUTH_GITHUB_CLIENT_SECRET: GitHub API client secret for OAuth login.
    • OAUTH_TWITTER_CONSUMER_KEY: Twitter consumer key(API key) for OAuth login.
    • OAUTH_TWITTER_CONSUMER_SECRET: Twitter consumer secret(API secret) for OAuth login.

Documentation

Contribution

Found a Bug?

If you found a bug in the source code, you can help us by submitting an issue to our GitHub Repository. Even better, you can submit a Pull Request with a fix.

Missing a Feature?

You can request a new feature by submitting an issue to our GitHub Repository. If you would like to implement a new feature, firstly please submit the issue with your proposal to make sure we can confirm it. Please clarify what kind of change you would like to propose.

  • For a Major Feature, firstly open an issue and outline your proposal so it can be discussed.
    It also allows us to coordinate better, prevent duplication of work and help you to create the change so it can be successfully accepted into the project.
  • Small Features can be created and directly submitted as a Pull Request.

Language on GitHub

You can write issues and PRs in English or Japanese.

Discussion

If you have questions or suggestions, you can join our Slack team and talk about anything, anytime.

License