- Pluggable
- Features
- Create hierarchical pages with markdown
- Simultaneously edit with multiple people by HackMD(CodiMD) integration
- Support Authentication with LDAP / Active Directory, OAuth
- SSO(Single Sign On) with SAML
- Slack/Mattermost, IFTTT Integration
- Miscellaneous features
- Docker Ready
- Docker Compose Ready
- Support IE11 (Experimental)
- Go to https://heroku.com/deploy
- (Optional) Input INSTALL_PLUGINS to install plugins
git clone https://github.com/weseek/growi-docker-compose.git growi
cd growi
docker-compose up
See also weseek/growi-docker-compose
Migration Guide from Crowi is here.
- Node.js v10.x (DON'T USE 11.x)
- npm 6.x
- yarn
- MongoDB 3.x
See confirmed versions.
- Redis 3.x
- ElasticSearch 6.x (needed when using Full-text search)
- CAUTION: Following plugins are required
git clone https://github.com/weseek/growi.git
cd growi
yarn
MONGO_URI=mongodb://MONGO_HOST:MONGO_PORT/growi npm start
DO NOT USE npm install
, use yarn
instead.
If you launch growi with ElasticSearch, add environment variables before npm start
like following:
export MONGO_URI=mongodb://MONGO_HOST:MONGO_PORT/growi
export ELASTICSEARCH_URI=http://ELASTICSEARCH_HOST:ELASTICSEARCH_PORT/growi
npm start
For more info, see Developers Guide.
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 |
git pull
yarn
npm start
- Stop server if server is running
yarn add
to install plugin ornpm install
npm start
to build client app and start server
yarn add growi-plugin-lsx
npm start
For more info, see Developers Guide on docs.growi.org.
- Required
- MONGO_URI: URI to connect to MongoDB.
- Option
- NODE_ENV:
production
ORdevelopment
. - 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
- FILE_UPLOAD: Attached files storage. default:
aws
aws
: AWS S3 (needs AWS settings on Admin page)mongodb
: MongoDB GridFS (Setting-less)local
: Server's Local file system (Setting-less)none
: Disable file uploading
- MAX_FILE_SIZE: The maximum file size limit for uploads (bytes). default:
Infinity
- MONGO_GRIDFS_TOTAL_LIMIT: Total capacity limit of MongoDB GridFS (bytes). default:
Infinity
- 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 publicprivate
: 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 whenNODE_ENV=production
)
- NODE_ENV:
- Option to integrate with external systems
- HACKMD_URI: URI to connect to HackMD(CodiMD) server.
- This server must load the GROWI agent. Here's how to prepare it.
- 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.
- HACKMD_URI: URI to connect to HackMD(CodiMD) server.
- Option (Overwritable in admin page)
- APP_SITE_URL: Site URL. e.g.
https://example.com
,https://example.com:8080
- 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.
- SAML_ENABLED: Enable or disable SAML
- 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
- APP_SITE_URL: Site URL. e.g.
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.
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.
We have some Transifex Projects.
Please join to our team!
You can write issues and PRs in English or Japanese.
If you have questions or suggestions, you can join our Slack team and talk about anything, anytime.
- The MIT License (MIT)
- See LICENSE file.