diff --git a/.editorconfig b/.editorconfig index 1629e28fa..b3ddf1c8a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,7 @@ trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false -[{.travis.yml,npm-shrinkwrap.json,package.json}] +[{npm-shrinkwrap.json,package.json}] indent_style = space indent_size = 2 diff --git a/CHANGELOG.md b/CHANGELOG.md index a9797043f..c4f24294c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,5 +3,5 @@ Please refer to the release notes published under [`public/docs/release-notes.md`](public/docs/release-notes.md). -These are also available on each CodiMD instance under +These are also available on each HedgeDoc instance under diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6c39d7e30..9637979f9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ interactions with the project. ## Sign your work We use the Developer Certificate of Origin (DCO) as a additional safeguard -for the CodiMD project. This is a well established and widely used +for the HedgeDoc project. This is a well established and widely used mechanism to assure contributors have confirmed their right to license their contribution under the project's license. Please read [docs/legal/developer-certificate-of-origin.txt][dcofile]. diff --git a/LICENSE b/LICENSE index ccbd997d3..08b09fb5a 100644 --- a/LICENSE +++ b/LICENSE @@ -629,12 +629,12 @@ to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - CodiMD - Realtime collaborative markdown notes on all platforms. + HedgeDoc - Realtime collaborative markdown notes on all platforms. Copyright (C) 2019 Christoph (Sheogorath) Kern Copyright (C) 2019 Claudius Coenen Copyright (C) 2019 Max Wu Copyright (C) 2017 Yukai Huang - And more can be found on https://github.com/codimd/server/graphs/contributors + And more can be found on https://github.com/hedgedoc/hedgedoc/graphs/contributors Or in the local AUTHORS file diff --git a/README.md b/README.md index 80060e2b9..6081a02e1 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,20 @@ -# CodiMD +![HedgeDoc Logo](https://raw.githubusercontent.com/hedgedoc/hedgedoc-logo/main/LOGOTYPE/SVG/HedgeDoc-Logo%204b.svg) -[![#CodiMD on matrix.org][matrix.org-image]][matrix.org-url] -[![build status][travis-image]][travis-url] +# HedgeDoc + +[![#HedgeDoc on matrix.org][matrix.org-image]][matrix.org-url] [![version][github-version-badge]][github-release-page] [![POEditor][poeditor-image]][poeditor-url] [![Mastodon][social-mastodon-image]][social-mastodon] -CodiMD lets you create real-time collaborative markdown notes. You can test-drive -it by visiting our [CodiMD demo server][codimd-demo]. - -**Note**: CodiMD is in the process of [changing its name to HedgeDoc](https://github.com/codimd/server/issues/452). +HedgeDoc lets you create real-time collaborative markdown notes. You can test-drive +it by visiting our [HedgeDoc demo server][hedgedoc-demo]. It is inspired by Hackpad, Etherpad and similar collaborative editors. This project originated with the team at [HackMD](https://hackmd.io) and now forked into its own organisation. [A longer writeup can be read in the history doc](docs/history.md). -[![CodiMD 1.3.2 with its feature demonstration page open](docs/images/CodiMD-1.3.2-features.png)][codimd-demo-features] +[![HedgeDoc 1.3.2 with its feature demonstration page open](docs/images/CodiMD-1.3.2-features.png)][hedgedoc-demo-features] ## Community and Contributions @@ -26,13 +25,13 @@ take a look at the [docs/dev](docs/dev) directory. In any case: come talk to us, we'll be delighted to help you with the first steps. To stay up to date with our work or get support it's recommended to join our -[Matrix channel][matrix.org-url], stop by our [community forums][codimd-community] +[Matrix channel][matrix.org-url], stop by our [community forums][hedgedoc-community] or subscribe to the [release feed][github-release-feed]. We also engage in -regular [community calls][codimd-community-calls] ([RSS](https://community.codimd.org/t/codimd-community-call/19.rss)) which you are very welcome to join. +regular [community calls][hedgedoc-community-calls] ([RSS](https://community.hedgedoc.org/t/codimd-community-call/19.rss)) which you are very welcome to join. ## Installation / Upgrading -You can run CodiMD in a number of ways, and we created setup instructions for +You can run HedgeDoc in a number of ways, and we created setup instructions for all of these: - [Docker](docs/setup/docker.md) @@ -44,10 +43,10 @@ all of these: ## Configuration -Theres two main ways to [configure](docs/configuration.md) your CodiMD instance: +Theres two main ways to [configure](docs/configuration.md) your HedgeDoc instance: config file or environment variables. You can choose what works best for you. -CodiMD can integrate with +HedgeDoc can integrate with - facebook, twitter, github, gitlab, mattermost, dropbox, google, ldap, saml and [oauth2](docs/guides/auth/oauth.md) **for login** - imgur, s3, minio, azure **for image/attachment storage** (files can also be local!) @@ -57,7 +56,7 @@ More info about that can be found in the configuration docs above. ## Browser support -To use CodiMD, your browser should match or exceed these versions: +To use HedgeDoc, your browser should match or exceed these versions: - ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/chrome/chrome_24x24.png) Chrome >= 47, ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/chrome/chrome_24x24.png) Chrome for Android >= 47 - ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/safari/safari_24x24.png) Safari >= 9, ![iOS Safarai](https://raw.githubusercontent.com/alrra/browser-logos/HEAD/src/safari-ios/safari-ios_24x24.png) iOS Safari >= 8.4 @@ -68,36 +67,36 @@ To use CodiMD, your browser should match or exceed these versions: ## Backup/restore your instance -To backup codimd, you should: +To backup HedgeDoc, you should: - backup your database - backup your custom config file if you have one -- backup the upload folder (see the [uploadsPath](./docs/configuration.md#codimd-paths-stuff) config directive) +- backup the upload folder (see the [uploadsPath](./docs/configuration.md#hedgedoc-paths-stuff) config directive) -Restoring an existing instance of codimd is then just a matter of restoring these elements. +Restoring an existing instance of HedgeDoc is then just a matter of restoring these elements. ## Related Tools -Our community has created related tools, we'd like to highlight [codimd-cli](https://github.com/codimd/cli) -which lets you use CodiMD from the comfort of your command line. +Our community has created related tools, we'd like to highlight [hedgedoc-cli](https://github.com/hedgedoc/cli) +which lets you use HedgeDoc from the comfort of your command line. ## License Licensed under AGPLv3. For our list of contributors, see [AUTHORS](AUTHORS). +The license does not include the HedgeDoc logo, whose terms of usage can be found in the [github repository](https://github.com/hedgedoc/hedgedoc-logo). + [matrix.org-image]: https://img.shields.io/matrix/hedgedoc:matrix.org?logo=matrix&server_fqdn=matrix.org [matrix.org-url]: https://matrix.to/#/#hedgedoc:matrix.org -[travis-image]: https://travis-ci.org/codimd/server.svg?branch=master -[travis-url]: https://travis-ci.org/codimd/server -[github-version-badge]: https://img.shields.io/github/release/codimd/server.svg -[github-release-page]: https://github.com/codimd/server/releases -[github-release-feed]: https://github.com/codimd/server/releases.atom -[github-issue-tracker]: https://github.com/codimd/server/issues/ +[github-version-badge]: https://img.shields.io/github/release/hedgedoc/hedgedoc.svg +[github-release-page]: https://github.com/hedgedoc/hedgedoc/releases +[github-release-feed]: https://github.com/hedgedoc/hedgedoc/releases.atom +[github-issue-tracker]: https://github.com/hedgedoc/hedgedoc/issues/ [poeditor-image]: https://img.shields.io/badge/POEditor-translate-blue.svg [poeditor-url]: https://poeditor.com/join/project/1OpGjF2Jir -[codimd-demo]: https://demo.codimd.org -[codimd-demo-features]: https://demo.codimd.org/features -[codimd-community]: https://community.codimd.org -[codimd-community-calls]: https://community.codimd.org/t/codimd-community-call/19 -[social-mastodon]: https://social.codimd.org/mastodon +[hedgedoc-demo]: https://demo.hedgedoc.org +[hedgedoc-demo-features]: https://demo.hedgedoc.org/features +[hedgedoc-community]: https://community.hedgedoc.org +[hedgedoc-community-calls]: https://community.hedgedoc.org/t/codimd-community-call/19 +[social-mastodon]: https://social.hedgedoc.org/mastodon [social-mastodon-image]: https://img.shields.io/mastodon/follow/18547?domain=https%3A%2F%2Fsocial.snopyta.org&style=social diff --git a/SECURITY.md b/SECURITY.md index 6d5a8c614..d7e7390ba 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,12 +2,12 @@ ## Supported Versions -Only the latest release of CodiMD is supported. We don't have the +Only the latest release of HedgeDoc is supported. We don't have the ressources to maintain multiple versions. ## Reporting a Vulnerability -If you find a vulnerability for [this repository](https://github.com/codimd/server), please report it to +If you find a vulnerability for [this repository](https://github.com/hedgedoc/hedgedoc), please report it to [@SISheogorath](https://github.com/SISheogorath). Please report your findings OpenPGP encrypted. If you are not aware of @@ -25,8 +25,8 @@ the fix, we want to encurage you to publish your findings as you like. We'll also credit you in the release notes. When your findings are not accepted as a security issue, feel free to write -a fix yourself and contribute it to CodiMD, as well as publish them as you -like and allow people to make in informed decision about using CodiMD. +a fix yourself and contribute it to HedgeDoc, as well as publish them as you +like and allow people to make in informed decision about using HedgeDoc. If you have any further questions, feel free to reach out to the [community chat](https://matrix.to/#/#hedgedoc:matrix.org) or the mentioned contacts above. diff --git a/app.js b/app.js index 90beefbef..67fb22323 100644 --- a/app.js +++ b/app.js @@ -176,7 +176,7 @@ app.use(passport.session()) app.use(require('./lib/web/middleware/checkURIValid')) // redirect url without trailing slashes app.use(require('./lib/web/middleware/redirectWithoutTrailingSlashes')) -app.use(require('./lib/web/middleware/codiMDVersion')) +app.use(require('./lib/web/middleware/hedgeDocVersion')) // routes need sessions // template files @@ -287,7 +287,7 @@ process.on('uncaughtException', function (err) { // install exit handler function handleTermSignals () { - logger.info('CodiMD has been killed by signal, try to exit gracefully...') + logger.info('HedgeDoc has been killed by signal, try to exit gracefully...') realtime.maintenance = true // disconnect all socket.io clients Object.keys(io.sockets.sockets).forEach(function (key) { diff --git a/app.json b/app.json index 4d68c0df2..4cf3875be 100644 --- a/app.json +++ b/app.json @@ -1,14 +1,14 @@ { - "name": "CodiMD", + "name": "HedgeDoc", "description": "Realtime collaborative markdown notes on all platforms", "keywords": [ "Collaborative", "Markdown", "Notes" ], - "website": "https://codimd.org", - "repository": "https://github.com/codimd/server", - "logo": "https://github.com/codimd/server/raw/master/public/codimd-icon-1024.png", + "website": "https://hedgedoc.org", + "repository": "https://github.com/hedgedoc/hedgedoc", + "logo": "https://github.com/hedgedoc/hedgedoc/raw/master/public/hedgedoc-icon-1024.png", "success_url": "/", "env": { "NPM_CONFIG_PRODUCTION": { diff --git a/bin/setup b/bin/setup index 1f766703d..776a0a954 100755 --- a/bin/setup +++ b/bin/setup @@ -35,10 +35,10 @@ yarn install --production=false --pure-lockfile cat << EOF -Edit the following config file to setup CodiMD server and client. -Read more info at https://github.com/codimd/server#configuration-files +Edit the following config file to setup HedgeDoc server and client. +Read more info at https://github.com/hedgedoc/server#configuration-files -* config.json -- CodiMD config +* config.json -- HedgeDoc config * .sequelizerc -- db config EOF diff --git a/config.json.example b/config.json.example index 71187b966..258643a99 100644 --- a/config.json.example +++ b/config.json.example @@ -13,7 +13,7 @@ }, "db": { "dialect": "sqlite", - "storage": "./db.codimd.sqlite" + "storage": "./db.hedgedoc.sqlite" }, "linkifyHeaderStyle": "gfm" }, @@ -39,7 +39,7 @@ "db": { "username": "", "password": "", - "database": "codimd", + "database": "hedgedoc", "host": "localhost", "port": "5432", "dialect": "postgres" diff --git a/docs/configuration.md b/docs/configuration.md index a173e12c1..8f2d6263a 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ # Configuration -You can choose to configure CodiMD with either a config file or with environment variables. +You can choose to configure HedgeDoc with either a config file or with environment variables. Environment variables take precedence over configurations from the config files. They generally start with `CMD_` for our own options, but we also list node-specific options you can configure this way. @@ -18,18 +18,18 @@ to `config.json` before filling in your own details. | | `NODE_ENV` | `production` or `development` | set current environment (will apply corresponding settings in the `config.json`) | | `debug` | `DEBUG` | `true` or `false` | set debug mode, show more logs | -## CodiMD basics +## HedgeDoc basics | config file | environment | **default** and example value | description | | ------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowPDFExport` | `CMD_ALLOW_PDF_EXPORT` | **`true`** or `false` | Enable or disable PDF exports | -| | `CMD_CONFIG_FILE` | **no default**, `/path/to/config.json` | optional override for the path to CodiMD's config file | -| `db` | | **`undefined`**, `{ "dialect": "sqlite", "storage": "./db.codimd.sqlite" }` | set the db configs, [see more here](http://sequelize.readthedocs.org/en/latest/api/sequelize/) | +| | `CMD_CONFIG_FILE` | **no default**, `/path/to/config.json` | optional override for the path to HedgeDoc's config file | +| `db` | | **`undefined`**, `{ "dialect": "sqlite", "storage": "./db.hedgedoc.sqlite" }` | set the db configs, [see more here](http://sequelize.readthedocs.org/en/latest/api/sequelize/) | | `dbURL` | `CMD_DB_URL` | **`undefined`**, `mysql://localhost:3306/database` | Set the db in URL style. If set, then the relevant `db` config entries will be overridden. | | `loglevel` | `CMD_LOGLEVEL` | **`info`**, `debug` ... | Defines what kind of logs are provided to stdout. Available options: `debug`, `verbose`, `info`, `warn`, `error` | | `forbiddenNoteIDs` | `CMD_FORBIDDEN_NOTE_IDS` | **`['robots.txt', 'favicon.ico', 'api', 'build', 'css', 'docs', 'fonts', 'js', 'uploads', 'vendor', 'views']`**, `['robots.txt']` or `'robots.txt'` | disallow creation of notes, even if `allowFreeUrl` or `CMD_ALLOW_FREEURL` is `true` | | `imageUploadType` | `CMD_IMAGE_UPLOAD_TYPE` | **`filesystem`**, `imgur`, `s3`, `minio`, `azure`, `lutim` | Where to upload images. For S3, see our Image Upload Guides for [S3](guides/s3-image-upload.md) or [Minio](guides/minio-image-upload.md), also there's a whole section on their respective env vars below. | -| `sourceURL` | `CMD_SOURCE_URL` | **no default**, `https://github.com/codimd/server/tree/` | Provides the link to the source code of CodiMD on the entry page (Please, make sure you change this when you run a modified version) | +| `sourceURL` | `CMD_SOURCE_URL` | **no default**, `https://github.com/hedgedoc/server/tree/` | Provides the link to the source code of HedgeDoc on the entry page (Please, make sure you change this when you run a modified version) | | `tooBusyLag` | `CMD_TOOBUSY_LAG` | **`70`** | CPU time for one event loop tick until node throttles connections. (milliseconds) | | `staticCacheTime` | | **`1 * 24 * 60 * 60 * 1000`** | static file cache time | | `heartbeatInterval` | | **`5000`** | socket.io heartbeat interval | @@ -37,7 +37,7 @@ to `config.json` before filling in your own details. | `documentMaxLength` | | **`100000`** | note max length | | `linkifyHeaderStyle` | | **`keep-case`**, `lower-case`, `gfm` | how is a header text converted into a link id | -## CodiMD paths stuff +## HedgeDoc paths stuff these are rarely used for various reasons. @@ -46,28 +46,28 @@ these are rarely used for various reasons. | `defaultNotePath` | | **`./public/default.md`** | default note file path1, empty notes will be created with this template. | | `dhParamPath` | | **`undefined`**, `./cert/dhparam.pem` | SSL dhparam path1 (only need when you set `useSSL`) | | `sslCAPath` | | **`undefined`**, `['./cert/COMODORSAAddTrustCA.crt']` | SSL ca chain1 (only need when you set `useSSL`) | -| `sslCertPath` | | **`undefined`**, `./cert/codimd_io.crt` | SSL cert path1 (only need when you set `useSSL`) | +| `sslCertPath` | | **`undefined`**, `./cert/hedgedoc_io.crt` | SSL cert path1 (only need when you set `useSSL`) | | `sslKeyPath` | | **`undefined`**, `./cert/client.key` | SSL key path1 (only need when you set `useSSL`) | | `tmpPath` | | **`os.tmpdir()`**, `./tmp/` | temp directory path1 | | `docsPath` | | **`./public/docs`** | docs directory path1 | | `viewPath` | | **`./public/views`** | template directory path1 | | `uploadsPath` | | **`./public/uploads`** | uploads directory1 - needs to be persistent when you use imageUploadType `filesystem` | -**Note:** *relative paths are based on CodiMD's base directory* +**Note:** *relative paths are based on HedgeDoc's base directory* -## CodiMD Location +## HedgeDoc Location | config file | environment | **default** and example value | description | | ---------------- | --------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| `domain` | `CMD_DOMAIN` | **`null`**, `localhost`, `codimd.org` | domain name | -| `urlPath` | `CMD_URL_PATH` | **`null`**, `codimd` | If CodiMD is run from a subdirectory like `www.example.com/` | +| `domain` | `CMD_DOMAIN` | **`null`**, `localhost`, `hedgedoc.org` | domain name | +| `urlPath` | `CMD_URL_PATH` | **`null`**, `hedgedoc` | If HedgeDoc is run from a subdirectory like `www.example.com/` | | `host` | `CMD_HOST` | **`0.0.0.0`**, `localhost` | interface/ip to listen on | | `port` | `CMD_PORT` | **`3000`**, `80` | port to listen on | -| `path` | `CMD_PATH` | **no default**, `/var/run/codimd.sock` | path to UNIX domain socket to listen on (if specified, `host` or `CMD_HOST` and `port` or `CMD_PORT` are ignored) | +| `path` | `CMD_PATH` | **no default**, `/var/run/hedgedoc.sock` | path to UNIX domain socket to listen on (if specified, `host` or `CMD_HOST` and `port` or `CMD_PORT` are ignored) | | `protocolUseSSL` | `CMD_PROTOCOL_USESSL` | **`false`** or `true` | set to use SSL protocol for resources path (only applied when domain is set) | | `useSSL` | | **`false`** or `true` | set to use SSL server (if `true`, will auto turn on `protocolUseSSL`) | | `urlAddPort` | `CMD_URL_ADDPORT` | **`false`** or `true` | set to add port on callback URL (ports `80` or `443` won't be applied) (only applied when domain is set) | -| `allowOrigin` | `CMD_ALLOW_ORIGIN` | **`['localhost']`**, `['codimd.org']`, `[localhost, codimd.org]` | domain name whitelist (use comma to separate) | +| `allowOrigin` | `CMD_ALLOW_ORIGIN` | **`['localhost']`**, `['hedgedoc.org']`, `[localhost, hedgedoc.org]` | domain name whitelist (use comma to separate) | ## Web security aspects @@ -166,8 +166,8 @@ these are rarely used for various reasons. | | `CMD_LDAP_SEARCHBASE` | **no default**, `o=users,dc=example,dc=com` | LDAP directory to begin search from | | | `CMD_LDAP_SEARCHFILTER` | **no default**, `(uid={{username}})` | LDAP filter to search with | | | `CMD_LDAP_SEARCHATTRIBUTES` | **no default**, `displayName, mail` | LDAP attributes to search with (use comma to separate) | -| | `CMD_LDAP_USERIDFIELD` | **no default**, `uidNumber` or `uid` or `sAMAccountName` | The LDAP field which is used uniquely identify a user on CodiMD | -| | `CMD_LDAP_USERNAMEFIELD` | **no default**, fallback to userid | The LDAP field which is used as the username on CodiMD | +| | `CMD_LDAP_USERIDFIELD` | **no default**, `uidNumber` or `uid` or `sAMAccountName` | The LDAP field which is used uniquely identify a user on HedgeDoc | +| | `CMD_LDAP_USERNAMEFIELD` | **no default**, fallback to userid | The LDAP field which is used as the username on HedgeDoc | | | `CMD_LDAP_TLS_CA` | **no default**, `server-cert.pem, root.pem` | Root CA for LDAP TLS in PEM format (use comma to separate) | | | `CMD_LDAP_PROVIDERNAME` | **no default**, `My institution` | Optional name to be displayed at login form indicating the LDAP provider | @@ -191,8 +191,8 @@ these are rarely used for various reasons. | | `CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR` | **no default**, `email` | where to find the email address in the JSON from the user profile URL. (no default value) | | | `CMD_OAUTH2_TOKEN_URL` | **no default**, `https://example.com` | sometimes called token endpoint, please refer to the documentation of your OAuth2 provider (no default value) | | | `CMD_OAUTH2_AUTHORIZATION_URL` | **no default**, `https://example.com` | authorization URL of your provider, please refer to the documentation of your OAuth2 provider (no default value) | -| | `CMD_OAUTH2_CLIENT_ID` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register CodiMD as OAuth2-client, (no default value) | -| | `CMD_OAUTH2_CLIENT_SECRET` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register CodiMD as OAuth2-client, (no default value) | +| | `CMD_OAUTH2_CLIENT_ID` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register HedgeDoc as OAuth2-client, (no default value) | +| | `CMD_OAUTH2_CLIENT_SECRET` | **no default**, `afae02fckafd...` | you will get this from your OAuth2 provider when you register HedgeDoc as OAuth2-client, (no default value) | | | `CMD_OAUTH2_PROVIDERNAME` | **no default**, `My institution` | Optional name to be displayed at login form indicating the oAuth2 provider | | | `CMD_OAUTH2_SCOPE` | **no default**, `openid email profile` | Scope to request for OIDC (OpenID Connect) providers. | @@ -208,7 +208,7 @@ these are rarely used for various reasons. | | `CMD_SAML_DISABLEREQUESTEDAUTHNCONTEXT` | **no default**, `true` or `false` | true to allow any authentication method, false restricts to password authentication (PasswordProtectedTransport) method (default: false) | | | `CMD_SAML_IDENTIFIERFORMAT` | **`urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`** | name identifier format (optional, default: `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress`) | | | `CMD_SAML_GROUPATTRIBUTE` | **no default**, `memberOf` | attribute name for group list (optional) | -| | `CMD_SAML_REQUIREDGROUPS` | **no default**, `codimd-users` | group names that allowed (use vertical bar to separate) (optional) | +| | `CMD_SAML_REQUIREDGROUPS` | **no default**, `hedgedoc-users` | group names that allowed (use vertical bar to separate) (optional) | | | `CMD_SAML_EXTERNALGROUPS` | **no default**, `Temporary-staff` | group names that not allowed (use vertical bar to separate) (optional) | | | `CMD_SAML_ATTRIBUTE_ID` | **no default**, `sAMAccountName` | attribute map for `id` (optional, default: NameID of SAML response) | | | `CMD_SAML_ATTRIBUTE_USERNAME` | **no default**, `mailNickname` | attribute map for `username` (optional, default: NameID of SAML response) | diff --git a/docs/dev/api.md b/docs/dev/api.md index fbbdae830..5422533d2 100644 --- a/docs/dev/api.md +++ b/docs/dev/api.md @@ -1,5 +1,5 @@ # API documentation -Several tasks of CodiMD can be automated through HTTP requests. +Several tasks of HedgeDoc can be automated through HTTP requests. The available endpoints for this api are described in this document. For code-autogeneration there is an OpenAPIv3-compatible description available [here](openapi.yml). @@ -34,9 +34,9 @@ These endpoints return information about the current logged-in user and it's not | `/history/` | `POST` | **Toggles the pinned status in the history for a note.**
The body must be form-encoded and contain a field `pinned` that is either `true` or `false`. | | `/history/` | `DELETE` | **Deletes a note from the user's history.** | -## CodiMD-server -These endpoints return information about the running CodiMD instance. +## HedgeDoc-server +These endpoints return information about the running HedgeDoc instance. | Endpoint | HTTP-Method | Description | | --------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/status` | `GET` | **Returns the current status of the CodiMD instance.**
The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. | +| `/status` | `GET` | **Returns the current status of the HedgeDoc instance.**
The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. | diff --git a/docs/dev/getting-started.md b/docs/dev/getting-started.md index 7ed96944d..9169ea4d1 100644 --- a/docs/dev/getting-started.md +++ b/docs/dev/getting-started.md @@ -4,7 +4,7 @@ **Notice:** *There's [specialised instructions for docker](../setup/docker.md) or [heroku](../setup/heroku.md), if you prefer running code this way!* -1. Clone the repository with `git clone https://github.com/codimd/server.git codimd-server` +1. Clone the repository with `git clone https://github.com/hedgedoc/server.git hedgedoc-server` (cloning is the preferred way, but you can also download and unzip a release) 2. Enter the directory and run `bin/setup`, which will install npm dependencies @@ -16,7 +16,7 @@ ## Running the Code -Now that everything is in place, we can start CodiMD: +Now that everything is in place, we can start HedgeDoc: 1. `yarn run build` will build the frontend bundle. It uses webpack to do that. 2. Run the server with `node app.js` @@ -43,7 +43,7 @@ The repository contains two parts: a server (backend) and a client (frontend). most of the server code is in `/lib` and most of the client code is in `public`. ```text -codimd-server/ +hedgedoc-server/ ├── docs/ --- documentation ├── lib/ --- server code ├── test/ --- test suite diff --git a/docs/dev/openapi.yml b/docs/dev/openapi.yml index 4d3e31f6d..d32a7ef47 100644 --- a/docs/dev/openapi.yml +++ b/docs/dev/openapi.yml @@ -1,18 +1,18 @@ openapi: 3.0.1 info: - title: CodiMD - description: CodiMD is an open source collaborative note editor. Several tasks of CodiMD can be automated through this API. + title: HedgeDoc + description: HedgeDoc is an open source collaborative note editor. Several tasks of HedgeDoc can be automated through this API. version: 1.6.0 contact: - name: CodiMD on GitHub - url: https://github.com/codimd/server + name: HedgeDoc on GitHub + url: https://github.com/hedgedoc/server license: name: AGPLv3 - url: https://github.com/codimd/server/blob/master/LICENSE + url: https://github.com/hedgedoc/server/blob/master/LICENSE externalDocs: - url: https://github.com/codimd/server/blob/master/docs/dev/api.md + url: https://github.com/hedgedoc/server/blob/master/docs/dev/api.md paths: @@ -281,7 +281,7 @@ paths: tags: - note summary: Creates a new GitHub Gist with the note's content. - description: 'If [GitHub integration](https://github.com/codimd/server/blob/master/docs/configuration-env-vars.md#github-login) is configured, the user will be redirected to GitHub and a new Gist with the content of the note will be created.' + description: 'If [GitHub integration](https://github.com/hedgedoc/server/blob/master/docs/configuration-env-vars.md#github-login) is configured, the user will be redirected to GitHub and a new Gist with the content of the note will be created.' responses: default: description: Redirect to the created gist (or the GitHub authentication before) @@ -432,7 +432,7 @@ paths: get: tags: - server - summary: Returns the current status of the CodiMD instance. + summary: Returns the current status of the HedgeDoc instance. description: The data is returned as a JSON object containing the number of notes stored on the server, (distinct) online users and more. responses: 200: @@ -478,4 +478,4 @@ tags: - name: user description: These endpoints return information about the current logged-in user and it's note history. If no user is logged-in, the most of this requests will fail with either a HTTP 403 or a JSON object containing `{"status":"forbidden"}`. - name: server - description: These endpoints return information about the running CodiMD instance. + description: These endpoints return information about the running HedgeDoc instance. diff --git a/docs/guides/auth/github.md b/docs/guides/auth/github.md index dc46f74c2..f540a5300 100644 --- a/docs/guides/auth/github.md +++ b/docs/guides/auth/github.md @@ -1,7 +1,5 @@ # Authentication guide - GitHub -*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks! - 1. Sign-in or sign-up for a GitHub account 2. Navigate to developer settings in your GitHub account [here](https://github.com/settings/developers) and select the "OAuth Apps" tab @@ -12,7 +10,7 @@ 4. Fill out the new OAuth application registration form, and click **Register Application** ![register-oauth-application-form](../../images/auth/register-oauth-application-form.png) - **Note:** *The callback URL is /auth/github/callback* + **Note:** *The callback URL is /auth/github/callback* 5. After successfully registering the application, you'll receive the Client ID and Client Secret for the application ![application-page](../../images/auth/application-page.png) diff --git a/docs/guides/auth/gitlab-self-hosted.md b/docs/guides/auth/gitlab-self-hosted.md index 62ce11220..fc655ac52 100644 --- a/docs/guides/auth/gitlab-self-hosted.md +++ b/docs/guides/auth/gitlab-self-hosted.md @@ -1,6 +1,6 @@ # GitLab (self-hosted) -*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks! +*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks! 1. Sign in to your GitLab 2. Navigate to the application management page at `https://your.gitlab.domain/admin/applications` (admin permissions required) @@ -16,7 +16,7 @@ 6. In the `docker-compose.yml` add the following environment variables to `app:` `environment:` ```Dockerfile -- CMD_DOMAIN=your.codimd.domain +- CMD_DOMAIN=your.hedgedoc.domain - CMD_URL_ADDPORT=true - CMD_PROTOCOL_USESSL=true - CMD_GITLAB_BASEURL=https://your.gitlab.domain @@ -25,6 +25,6 @@ ``` 7. Run `docker-compose up -d` to apply your settings. -8. Sign in to your CodiMD using your GitLab ID: +8. Sign in to your HedgeDoc using your GitLab ID: ![Sign in via GitLab](../../images/auth/gitlab-sign-in.png) diff --git a/docs/guides/auth/keycloak.md b/docs/guides/auth/keycloak.md index 16e24bc5c..6bb3ce7df 100644 --- a/docs/guides/auth/keycloak.md +++ b/docs/guides/auth/keycloak.md @@ -1,4 +1,4 @@ -OAuth with Keycloak/Red Hat SSO (self-hosted) +# OAuth with Keycloak/Red Hat SSO (self-hosted) ## Prerequisites @@ -13,7 +13,7 @@ Where HTTPS is specified throughout, use HTTP instead. You may also have to spec You may note that a separate realm is specified throughout this tutorial. It is best practice not to use the master realm, as it normally contains the realm-management client that federates access using the policies and permissions you can create. 2. Navigate to the client management page at `https://keycloak.example.com/auth/admin/master/console/#/realms/your-realm/clients` (admin permissions required) -3. Click **Create** to create a new client and fill out the registration form. You should set the Root URL to the fully qualified public URL of your CodiMD instance. +3. Click **Create** to create a new client and fill out the registration form. You should set the Root URL to the fully qualified public URL of your HedgeDoc instance. 4. Click **Save** 5. Set the **Access Type** of the client to `confidential`. This will make your client require a client secret upon authentication. @@ -24,7 +24,7 @@ You may note that a separate realm is specified throughout this tutorial. It is 1. Select Client Scopes from the sidebar, and begin to create a new client scope using the Create button. 2. Ensure that the **Name** field is set to `id`. 3. Create a new mapper under the Mappers tab. This should reference the User Property `id`. `Claim JSON Type` should be String and all switches below should be enabled. Save the mapper. -4. Go to the client you set up in the previous steps using the Clients page, then choose the Client Scopes tab. Apply the scope you've created. This should mitigate errors as seen in [codimd/server#56](https://github.com/codimd/server/issues/56), as the `/userinfo` endpoint should now bring back the user's ID under the `id` key as well as `sub`. +4. Go to the client you set up in the previous steps using the Clients page, then choose the Client Scopes tab. Apply the scope you've created. This should mitigate errors as seen in [hedgedoc/server#56](https://github.com/hedgedoc/server/issues/56), as the `/userinfo` endpoint should now bring back the user's ID under the `id` key as well as `sub`. --- @@ -40,10 +40,10 @@ CMD_OAUTH2_AUTHORIZATION_URL=https://keycloak.example.com/auth/realms/your-realm CMD_OAUTH2_CLIENT_ID= CMD_OAUTH2_CLIENT_SECRET= CMD_OAUTH2_PROVIDERNAME=Keycloak -CMD_DOMAIN= +CMD_DOMAIN= CMD_PROTOCOL_USESSL=true CMD_URL_ADDPORT=false ``` 6. Run `docker-compose up -d` to apply your settings. -7. Sign in to your CodiMD using your Keycloak ID +7. Sign in to your HedgeDoc using your Keycloak ID diff --git a/docs/guides/auth/ldap-ad.md b/docs/guides/auth/ldap-ad.md index fa41346e8..b7d0284e5 100644 --- a/docs/guides/auth/ldap-ad.md +++ b/docs/guides/auth/ldap-ad.md @@ -1,6 +1,6 @@ # AD LDAP auth -To setup your CodiMD instance with Active Directory you need the following configs: +To setup your HedgeDoc instance with Active Directory you need the following configs: ```env CMD_LDAP_URL=ldap://internal.example.com diff --git a/docs/guides/auth/mattermost-self-hosted.md b/docs/guides/auth/mattermost-self-hosted.md index 5085b4e7b..2ad2afd78 100644 --- a/docs/guides/auth/mattermost-self-hosted.md +++ b/docs/guides/auth/mattermost-self-hosted.md @@ -17,7 +17,7 @@ This guide uses the generic OAuth2 module for compatibility with Mattermost vers 5. Fill out the form and click **Save** ![mattermost-oauth-app-form](../../images/auth/mattermost-oauth-app-form.png) -*Note: The callback URL is \/auth/oauth2/callback* +*Note: The callback URL is \/auth/oauth2/callback* 6. After saving the application, you'll receive the Client ID and Client Secret ![mattermost-oauth-app-done](../../images/auth/mattermost-oauth-app-done.png) diff --git a/docs/guides/auth/nextcloud.md b/docs/guides/auth/nextcloud.md index 8ce90ca97..e0eb28d1f 100644 --- a/docs/guides/auth/nextcloud.md +++ b/docs/guides/auth/nextcloud.md @@ -11,14 +11,14 @@ This guide uses the generic OAuth2 module for compatibility with Nextcloud 13 an At the top there's OAuth 2.0-Clients. ![Where to find OAuth2 in Nextcloud](../../images/auth/nextcloud-oauth2-1-settings.png) -3. Add your CodiMD instance by giving it a *name* (perhaps CodiMD, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\/auth/oauth2/callback`. Click Add. +3. Add your HedgeDoc instance by giving it a *name* (perhaps HedgeDoc, but could be anything) and a *Redirection-URI*. The Redirection-URI will be `\/auth/oauth2/callback`. Click Add. ![Adding a client to Nextcloud](../../images/auth/nextcloud-oauth2-2-client-add.png) 4. You'll now see a line containing a *client identifier* and a *Secret*. ![Successfully added OAuth2-client](../../images/auth/nextcloud-oauth2-3-clientid-secret.png) -5. That's it for Nextcloud, the rest is configured in your CodiMD `config.json` or via the `CMD_` environment variables! +5. That's it for Nextcloud, the rest is configured in your HedgeDoc `config.json` or via the `CMD_` environment variables! 6. Add the Client ID and Client Secret to your `config.json` file or pass them as environment variables. Make sure you also replace `` with the right domain name. - `config.json`: diff --git a/docs/guides/auth/saml-keycloak.md b/docs/guides/auth/saml-keycloak.md index 5caf37669..1bc3b3632 100644 --- a/docs/guides/auth/saml-keycloak.md +++ b/docs/guides/auth/saml-keycloak.md @@ -1,34 +1,34 @@ -# How to setup CodiMD SAML with Keycloak +# How to setup HedgeDoc SAML with Keycloak ## Configuring Keycloak ### Get the public certificate -1. Select the Realm you want to use for your CodiMD SAML +1. Select the Realm you want to use for your HedgeDoc SAML 2. Select "Realm Settings" in left sidebar 3. Select the "Keys" tab 4. Click the button "Certificate" at `RS256` algorithm ![keycloak_idp_cert](../../images/auth/keycloak_idp_cert.png) -5. Copy this key and save it to the file specified in `saml.idpCert` property of the CodiMD configuration or `CMD_SAML_IDPCERT` environment variable +5. Copy this key and save it to the file specified in `saml.idpCert` property of the HedgeDoc configuration or `CMD_SAML_IDPCERT` environment variable ### Create a new client 1. Select "Client" in left sidebar ![keycloak_clients_overview](../../images/auth/keycloak_clients_overview.png) 2. Click on the "Create" button -3. Set a Client ID and specify this in `saml.issuer` property of the CodiMD configuration or `CMD_SAML_ISSUER` environment variable +3. Set a Client ID and specify this in `saml.issuer` property of the HedgeDoc configuration or `CMD_SAML_ISSUER` environment variable 4. Select `SAML` as Client Protocol -5. Set Client SAML Endpoint to `https://codimd.example.com/auth/saml` (replace `https://codimd.example.com` with the base URL of your CodiMD installation) +5. Set Client SAML Endpoint to `https://hedgedoc.example.com/auth/saml` (replace `https://hedgedoc.example.com` with the base URL of your HedgeDoc installation) ![keycloak_add_client](../../images/auth/keycloak_add_client.png) 6. Leave "Client Signature Required" enabled -7. Set Root URL to `https://codimd.example.com` (replace it here also with the base URL of your CodiMD installation) -8. Set Valid Redirect URIs to `https://codimd.example.com/auth/saml/callback` (you should also define all other domains of your CodiMD installtion with the suffix `/auth/saml/callback`) +7. Set Root URL to `https://hedgedoc.example.com` (replace it here also with the base URL of your HedgeDoc installation) +8. Set Valid Redirect URIs to `https://hedgedoc.example.com/auth/saml/callback` (you should also define all other domains of your HedgeDoc installtion with the suffix `/auth/saml/callback`) 9. Set Base URL to `/` ![keycloak_client_overview](../../images/auth/keycloak_client_overview.png) 10. _(optional)_ You can set which Name ID Format should be used -## Configure CodiMD +## Configure HedgeDoc ### Config file You have to put the following block inside your `config.json`: ```json "saml": { - "issuer": "codimd", // Change to the "Client ID" specified in the Keycloak Client + "issuer": "hedgedoc", // Change to the "Client ID" specified in the Keycloak Client "identifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "idpSsoUrl": "https://keycloak.example.org/auth/realms/test/protocol/saml", // replace keycloak.example.org with the url of your keycloak server "idpCert": "/path/to/the/cert.pem", @@ -40,12 +40,12 @@ You have to put the following block inside your `config.json`: - `CMD_SAML_IDPSSOURL`: `https://keycloak.example.org/auth/realms/test/protocol/saml` (replace keycloak.example.org with the url of your keycloak server) - `CMD_SAML_IDPCERT`: `/path/to/the/cert.pem` - *(optional, see below)* `CMD_SAML_CLIENTCERT`: `/path/to/the/key.pem` -- `CMD_SAML_ISSUER`: `codimd` (Change to the "Client ID" specified in the Keycloak Client) +- `CMD_SAML_ISSUER`: `hedgedoc` (Change to the "Client ID" specified in the Keycloak Client) - `CMD_SAML_IDENTIFIERFORMAT`: `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` ## Client certificate *(optional)* -If you want keycloak to be able to verify CodiMD, you hava to create a client certificate. There are two options for this: +If you want keycloak to be able to verify HedgeDoc, you hava to create a client certificate. There are two options for this: ### Create Private Keys for Signing 1. Generate the private key and certificate with the following commands: @@ -56,7 +56,7 @@ openssl req -new -x509 -key priv.pem -out cert.pem *execute the following steps in keycloak* 2. Select "Client" in left sidebar -3. Go to your CodiMD-Client +3. Go to your HedgeDoc-Client 4. Select the "SAML Keys" tab ![keycloak_saml_import_cert](../../images/auth/keycloak_saml_import_cert.png) 5. Click on "Import" @@ -64,14 +64,14 @@ openssl req -new -x509 -key priv.pem -out cert.pem 7. Now upload the generated cert.pem (in this case named `cert.pem`) ![keycloak_saml_import_cert_details](../../images/auth/keycloak_saml_import_cert_details.png) 8. Click on "Import" -9. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.clientCert` property of the CodiMD configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT` +9. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.clientCert` property of the HedgeDoc configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT` ### Convert Private Certificate generated by KeyCloak Instead if generating you own certificate, you can also use the one generated by keycloak. 1. Select "Client" in left sidebar -2. Go to your CodiMD-Client +2. Go to your HedgeDoc-Client 3. Select the "SAML Keys" tab ![keycloak_saml_export_cert](../../images/auth/keycloak_saml_export_cert.png) @@ -83,14 +83,14 @@ Instead if generating you own certificate, you can also use the one generated by ```shell openssl pkcs12 -in keystore.p12 -out key.pem -nocerts -nodes ``` -8. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.idpCert` property of the CodiMD configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT` +8. Move or copy this key (in this case named `key.pem`) and save it to the file specified in `saml.idpCert` property of the HedgeDoc configuration or in the enviroment-variable `CMD_SAML_CLIENTCERT` ## Use Persistent Identifiers -Instead of using the username as the owner-key in the CodiMD database, you can also use a persistent identifier. This allows to change the username, without them loosing access to their notes. +Instead of using the username as the owner-key in the HedgeDoc database, you can also use a persistent identifier. This allows to change the username, without them loosing access to their notes. -1. Go to the CodiMD-Client in keycloak. Now enable the option "Force Name ID Format" and select "persistent" as the "Name ID Format". +1. Go to the HedgeDoc-Client in keycloak. Now enable the option "Force Name ID Format" and select "persistent" as the "Name ID Format". ![keycloak_force_idformat](../../images/auth/keycloak_force_idformat.png) -2. For codimd to be able to use the username and email configured in keycloak, you have to create the following SAML protocol mappers: +2. For HedgeDoc to be able to use the username and email configured in keycloak, you have to create the following SAML protocol mappers: 2.1. Create a mapper with the type `User Property`. Set the Name, Property and SAML Attribute Name to `username`. Now you can specify a friendly name (for example `Username`) ![keycloak_mapper_username](../../images/auth/keycloak_mapper_username.png) 2.2 Create a mapper with the type `User Property`. Set the Name, Property and SAML Attribute Name to `email`. Now you can specify a friendly name (for example `E-Mail`) @@ -106,7 +106,7 @@ The configured mappers should look like this: "email": "email", } ``` -It you configure CodiMD with enviroment variables, these are the ones you have to set: +It you configure HedgeDoc with enviroment variables, these are the ones you have to set: ```bash CMD_SAML_ATTRIBUTE_USERNAME=username CMD_SAML_ATTRIBUTE_EMAIL=email diff --git a/docs/guides/auth/saml-onelogin.md b/docs/guides/auth/saml-onelogin.md index 46134e60c..8b897c823 100644 --- a/docs/guides/auth/saml-onelogin.md +++ b/docs/guides/auth/saml-onelogin.md @@ -1,6 +1,6 @@ # Authentication guide - SAML (OneLogin) -**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!* +**Note:** *This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!* 1. Sign-in or sign-up for an OneLogin account. (available free trial for 2 weeks) @@ -16,9 +16,9 @@ ![onelogin-edit-app-name](../../images/auth/onelogin-edit-app-name.png) 6. After that other tabs will appear, click the **Configuration**, and fill out the below items, and click **SAVE**. - - RelayState: The base URL of your CodiMD, which is issuer. (last slash is not needed) + - RelayState: The base URL of your HedgeDoc, which is issuer. (last slash is not needed) - - ACS (Consumer) URL Validator: The callback URL of your CodiMD. (serverurl + /auth/saml/callback) + - ACS (Consumer) URL Validator: The callback URL of your HedgeDoc. (serverurl + /auth/saml/callback) - ACS (Consumer) URL: same as above. @@ -31,7 +31,7 @@ - SAML 2.0 Endpoint (HTTP): Copy the URL ....(B) ![onelogin-copy-idp-metadata](../../images/auth/onelogin-copy-idp-metadata.png) -8. In your CodiMD server, create IdP certificate file from (A) +8. In your HedgeDoc server, create IdP certificate file from (A) 9. Add the IdP URL (B) and the Idp certificate file path to your config.json file or pass them as environment variables. - `config.json`: ```javascript @@ -51,5 +51,5 @@ CMD_SAML_IDPCERT=/path/to/idp_cert.pem ``` -10. Try sign-in with SAML from your CodiMD sign-in button or OneLogin dashboard (like the screenshot below). +10. Try sign-in with SAML from your HedgeDoc sign-in button or OneLogin dashboard (like the screenshot below). ![onelogin-use-dashboard](../../images/auth/onelogin-use-dashboard.png) diff --git a/docs/guides/auth/saml.md b/docs/guides/auth/saml.md index 3b8291b7b..58a2ae453 100644 --- a/docs/guides/auth/saml.md +++ b/docs/guides/auth/saml.md @@ -1,6 +1,6 @@ # Authentication guide - SAML -*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks! +*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks! The basic procedure is the same as the case of OneLogin which is mentioned in [OneLogin-Guide](./saml-onelogin.md). If you want to match your IdP, you can use more configurations as below. @@ -9,7 +9,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O - *Note:* If not accessible from IdP, download to local once and upload to IdP. - Change the value of `issuer`, `identifierFormat` to match your IdP. - - `issuer`: A unique id to identify the application to the IdP, which is the base URL of your CodiMD as default + - `issuer`: A unique id to identify the application to the IdP, which is the base URL of your HedgeDoc as default - `identifierFormat`: A format of unique id to identify the user of IdP, which is the format based on email address as default. It is recommend that you use as below. - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress (default) @@ -21,7 +21,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O "production": { "saml": { /* omitted */ - "issuer": "mycodimd" + "issuer": "myhedgedoc" "identifierFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" } } @@ -30,16 +30,16 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O - environment variables ```env - CMD_SAML_ISSUER=mycodimd + CMD_SAML_ISSUER=myhedgedoc CMD_SAML_IDENTIFIERFORMAT=urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified ``` - Change mapping of attribute names to customize the displaying user name and email address to match your IdP. - `attribute`: A dictionary to map attribute names - - `attribute.id`: A primary key of user table for your CodiMD + - `attribute.id`: A primary key of user table for your HedgeDoc - - `attribute.username`: Attribute name of displaying user name on CodiMD + - `attribute.username`: Attribute name of displaying user name on HedgeDoc - `attribute.email`: Attribute name of email address, which will be also used for Gravatar - *Note:* Default value of all attributes is NameID of SAML response, which is email address if `identifierFormat` is default. @@ -70,9 +70,9 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O - If you want to control permission by group membership, add group attribute name and required group (allowed) or external group (not allowed). - `groupAttribute`: An attribute name of group membership - - `requiredGroups`: Group names array for allowed access to CodiMD. Use vertical bar to separate for environment variables. + - `requiredGroups`: Group names array for allowed access to HedgeDoc. Use vertical bar to separate for environment variables. - - `externalGroups`: Group names array for not allowed access to CodiMD. Use vertical bar to separate for environment variables. + - `externalGroups`: Group names array for not allowed access to HedgeDoc. Use vertical bar to separate for environment variables. - *Note:* Evaluates `externalGroups` first - `config.json`: @@ -82,7 +82,7 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O "saml": { /* omitted */ "groupAttribute": "memberOf", - "requiredGroups": [ "codimd-users", "board-members" ], + "requiredGroups": [ "hedgedoc-users", "board-members" ], "externalGroups": [ "temporary-staff" ] } } @@ -92,6 +92,6 @@ The basic procedure is the same as the case of OneLogin which is mentioned in [O - environment variables ```sh CMD_SAML_GROUPATTRIBUTE=memberOf - CMD_SAML_REQUIREDGROUPS=codimd-users|board-members + CMD_SAML_REQUIREDGROUPS=hedgedoc-users|board-members CMD_SAML_EXTERNALGROUPS=temporary-staff ``` diff --git a/docs/guides/auth/twitter.md b/docs/guides/auth/twitter.md index 5e709bb4d..cbb8c8652 100644 --- a/docs/guides/auth/twitter.md +++ b/docs/guides/auth/twitter.md @@ -1,6 +1,6 @@ # Authentication guide - Twitter -*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks! +*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks! 1. Sign-in or sign-up for a Twitter account diff --git a/docs/guides/migrate-etherpad.md b/docs/guides/migrate-etherpad.md index b501d9ac0..00a48d2fb 100644 --- a/docs/guides/migrate-etherpad.md +++ b/docs/guides/migrate-etherpad.md @@ -1,11 +1,11 @@ # Pad migration guide from etherpad-lite The goal of this migration is to do a "dumb" import from all the pads in Etherpad, to notes in -CodiMD. In particular, the url locations of the pads in Etherpad will be lost. Furthermore, any +HedgeDoc. In particular, the url locations of the pads in Etherpad will be lost. Furthermore, any metadata in Etherpad, such as revisions, author data and also formatted text will not be migrated -to CodiMD (only the plain text contents). +to HedgeDoc (only the plain text contents). -Note that this guide is not really meant as a support guide. I migrated my own Etherpad to CodiMD, +Note that this guide is not really meant as a support guide. I migrated my own Etherpad to HedgeDoc, and it turned out to be quite easy in my opinion. In this guide I share my experience. Stuff may require some creativity to work properly in your case. When I wrote this guide, I was using [etherpad 1.7.0][] and [codimd 1.2.1][]. Good luck! @@ -14,8 +14,8 @@ require some creativity to work properly in your case. When I wrote this guide, - `curl` - running Etherpad server -- running CodiMD server -- [codimd-cli][] +- running HedgeDoc server +- [hedgedoc-cli][] ## 1. Retrieve the list of pads @@ -36,26 +36,26 @@ weddingchecklist ## 2. Run the migration -Download [codimd-cli][] and put the script in the same directory as the file containing the pad names. +Download [hedgedoc-cli][] and put the script in the same directory as the file containing the pad names. Add to this directory the file listed below, I called it `migrate-etherpad.sh`. Modify at least the -configuration settings `ETHERPAD_SERVER` and `CODIMD_SERVER`. +configuration settings `ETHERPAD_SERVER` and `HEDGEDOC_SERVER`. ```shell #!/bin/sh # migrate-etherpad.sh # -# Description: Migrate pads from etherpad to codimd +# Description: Migrate pads from etherpad to HedgeDoc # Author: Daan Sprenkels -# This script uses the codimd command line script[1] to import a list of pads from -# [1]: https://github.com/codimd/cli/blob/master/bin/codimd +# This script uses the HedgeDoc command line script[1] to import a list of pads from +# [1]: https://github.com/hedgedoc/cli/blob/master/bin/hedgedoc # The base url to where etherpad is hosted ETHERPAD_SERVER="https://etherpad.example.com" -# The base url where codimd is hosted -CODIMD_SERVER="https://codimd.example.com" +# The base url where HedgeDoc is hosted +HEDGEDOC_SERVER="https://hedgedoc.example.com" # Write a list of pads and the urls which they were migrated to REDIRECTS_FILE="redirects.txt" @@ -73,8 +73,8 @@ for PAD_NAME in $1; do PAD_FILE="$(mktemp)" curl "$ETHERPAD_SERVER/p/$PAD_NAME/export/txt" >"$PAD_FILE" - # Import the pad into codimd - OUTPUT="$(./codimd import "$PAD_FILE")" + # Import the pad into HedgeDoc + OUTPUT="$(./hedgedoc import "$PAD_FILE")" echo "$PAD_NAME -> $OUTPUT" >>"$REDIRECTS_FILE" done ``` @@ -85,7 +85,7 @@ Call this file like this: ./migrate-etherpad.sh pad_names.txt ``` -This will download all the pads in `pad_names.txt` and put them on CodiMD. They will get assigned +This will download all the pads in `pad_names.txt` and put them on HedgeDoc. They will get assigned random ids, so you won't be able to find them. The script will save the mappings to a file though (in my case `redirects.txt`). You can use this file to redirect your users when they visit your etherpad using a `301 Permanent Redirect` status code (see the next section). @@ -95,10 +95,10 @@ etherpad using a `301 Permanent Redirect` status code (see the next section). I got a `redirects.txt` file that looked a bit like this: ```log -date-ideas -> Found. Redirecting to https://codimd.example.com/mPt0KfiKSBOTQ3mNcdfn -groceries -> Found. Redirecting to https://codimd.example.com/UukqgwLfhYyUUtARlcJ2_y -london -> Found. Redirecting to https://codimd.example.com/_d3wa-BE8t4Swv5w7O2_9R -weddingchecklist -> Found. Redirecting to https://codimd.example.com/XcQGqlBjl0u40wfT0N8TzQ +date-ideas -> Found. Redirecting to https://hedgedoc.example.com/mPt0KfiKSBOTQ3mNcdfn +groceries -> Found. Redirecting to https://hedgedoc.example.com/UukqgwLfhYyUUtARlcJ2_y +london -> Found. Redirecting to https://hedgedoc.example.com/_d3wa-BE8t4Swv5w7O2_9R +weddingchecklist -> Found. Redirecting to https://hedgedoc.example.com/XcQGqlBjl0u40wfT0N8TzQ (...) ``` @@ -106,16 +106,16 @@ Using some `sed` magic, I changed it to an nginx config snippet: ```nginx location = /p/date-ideas { - return 301 https://codimd.example.com/mPt0M1KfiKSBOTQ3mNcdfn; + return 301 https://hedgedoc.example.com/mPt0M1KfiKSBOTQ3mNcdfn; } location = /p/groceries { - return 301 https://codimd.example.com/UukqgwLfhYyUUtARlcJ2_y; + return 301 https://hedgedoc.example.com/UukqgwLfhYyUUtARlcJ2_y; } location = /p/london { - return 301 https://codimd.example.com/_d3wa-BE8t4Swv5w7O2_9R; + return 301 https://hedgedoc.example.com/_d3wa-BE8t4Swv5w7O2_9R; } location = /p/weddingchecklist { - return 301 https://codimd.example.com/XcQGqlBjl0u40wfT0N8TzQ; + return 301 https://hedgedoc.example.com/XcQGqlBjl0u40wfT0N8TzQ; } ``` @@ -123,6 +123,6 @@ I put this file into my `etherpad.example.com` nginx config, such that all the u redirected accordingly. [etherpad 1.7.0]: https://github.com/ether/etherpad-lite/tree/1.7.0 -[codimd 1.2.1]: https://github.com/codimd/server/tree/1.2.1 -[codimd-cli]: https://github.com/codimd/cli/blob/master/bin/codimd +[codimd 1.2.1]: https://github.com/hedgedoc/server/tree/1.2.1 +[hedgedoc-cli]: https://github.com/hedgedoc/cli/blob/master/bin/hedgedoc [howtolistallpads]: https://github.com/ether/etherpad-lite/wiki/How-to-list-all-pads/49701ecdcbe07aea7ad27ffa23aed0d99c2e17db diff --git a/docs/guides/migrations-and-breaking-changes.md b/docs/guides/migrations-and-breaking-changes.md index 593af4467..20fa40f55 100644 --- a/docs/guides/migrations-and-breaking-changes.md +++ b/docs/guides/migrations-and-breaking-changes.md @@ -9,20 +9,20 @@ We dropped support for node 6 with this version. If you have any trouble running This is not a breaking change, but to stay up to date with the community repository, you may need to update a few urls. This is not a breaking change. -See more at [issue #10](https://github.com/codimd/server/issues/10) +See more at [issue #10](https://github.com/hedgedoc/server/issues/10) ### Native setup using git -Change the upstream remote using `git remote set-url origin https://github.com/codimd/server.git`. +Change the upstream remote using `git remote set-url origin https://github.com/hedgedoc/server.git`. ### Docker -When you use our [container repository](https://github.com/codimd/container) -(which was previously `codimd-container`) all you can simply run `git pull` and +When you use our [container repository](https://github.com/hedgedoc/container) +(which was previously `hedgedoc-container`) all you can simply run `git pull` and your `docker-compose.yml` will be updated. When you setup things yourself, make sure you use the new image: -[`quay.io/codimd/server`](https://quay.io/repository/codimd/server?tab=tags). +[`quay.io/hedgedoc/server`](https://quay.io/repository/hedgedoc/server?tab=tags). ### Heroku diff --git a/docs/guides/minio-image-upload.md b/docs/guides/minio-image-upload.md index 78ddd6ec0..41d9b14eb 100644 --- a/docs/guides/minio-image-upload.md +++ b/docs/guides/minio-image-upload.md @@ -1,6 +1,6 @@ -# Minio Guide for CodiMD +# Minio Guide for HedgeDoc -*Note:* This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks! +*Note:* This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks! 1. First of all you need to setup Minio itself. @@ -27,7 +27,7 @@ ![minio default view](../images/minio-image-upload/default-view.png) -4. Create a bucket for CodiMD +4. Create a bucket for HedgeDoc ![minio create bucket](../images/minio-image-upload/create-bucket.png) @@ -39,7 +39,7 @@ ![minio policy adding](../images/minio-image-upload/create-policy.png) *Add policy for uploads* -6. Set credentials and configs for Minio in CodiMD's `config.json` +6. Set credentials and configs for Minio in HedgeDoc's `config.json` ```JSON "minio": { @@ -57,7 +57,7 @@ 7. Set bucket name ```JSON - "s3bucket": "codimd" + "s3bucket": "hedgedoc" ``` 8. Set upload type. @@ -78,7 +78,7 @@ "port": 9000, "secure": false }, - "s3bucket": "codimd", + "s3bucket": "hedgedoc", "imageuploadtype": "minio" } ``` diff --git a/docs/guides/providing-terms.md b/docs/guides/providing-terms.md index c93307350..54a792f66 100644 --- a/docs/guides/providing-terms.md +++ b/docs/guides/providing-terms.md @@ -4,7 +4,7 @@ To setup your terms of use, you need to provide a document called `terms-of-use.md` which contains them. Of course written in Markdown. -It has to be provided under `./public/docs/` and will be automatically turned into a CodiMD document. It will also automatically updated as soon as you change the document on disk. +It has to be provided under `./public/docs/` and will be automatically turned into a HedgeDoc document. It will also automatically updated as soon as you change the document on disk. As soon as the file exists a link will show up in the bottom part along with the release notes and link to them. @@ -20,6 +20,6 @@ As with the terms of use, a link to the privacy notices will show up in the area To add an imprint you can use the same technique as for the terms of use. The main difference is that the document is called `imprint.md`. -It has to be provided under `./public/docs/` and will be automatically turned into a CodiMD document. It will also automatically updated as soon as you change the document on disk. +It has to be provided under `./public/docs/` and will be automatically turned into a HedgeDoc document. It will also automatically updated as soon as you change the document on disk. As with the terms of use, a link to the imprint will show up in the area where the release notes are provided on the index page. diff --git a/docs/guides/s3-image-upload.md b/docs/guides/s3-image-upload.md index cb3ae79f7..740dec53b 100644 --- a/docs/guides/s3-image-upload.md +++ b/docs/guides/s3-image-upload.md @@ -1,6 +1,6 @@ -# Guide - Setup CodiMD S3 image upload +# Guide - Setup HedgeDoc S3 image upload -**Note:** *This guide was written before the renaming. Just replace `HackMD` with `CodiMD` in your mind :smile: thanks!* +**Note:** *This guide was written before the renaming. Just replace `HackMD` with `HedgeDoc` in your mind :smile: thanks!* 1. Go to [AWS S3 console](https://console.aws.amazon.com/s3/home) and create a new bucket. ![create-bucket](../images/s3-image-upload/create-bucket.png) diff --git a/docs/history.md b/docs/history.md index 7c77987c3..47792e3bf 100644 --- a/docs/history.md +++ b/docs/history.md @@ -1,4 +1,4 @@ -# History of CodiMD +# History of HedgeDoc ## It started with HackMD @@ -34,4 +34,8 @@ move the repository, so we simply forked it. We still welcome the HackMD team as part of our community, especially since a large portion of this code base originated with them. -*For the debate that lead to this step, please refer to the [governance debate](https://github.com/hackmdio/hackmd/issues/1170) and [the announcement of the new repository](https://github.com/codimd/server/issues/10).* +*For the debate that lead to this step, please refer to the [governance debate](https://github.com/hackmdio/hackmd/issues/1170) and [the announcement of the new repository](https://github.com/hedgedoc/server/issues/10).* + +## CodiMD became HedgeDoc + + diff --git a/docs/setup/cloudron.md b/docs/setup/cloudron.md index f2ba8b976..3085e6bdd 100644 --- a/docs/setup/cloudron.md +++ b/docs/setup/cloudron.md @@ -1,10 +1,10 @@ # Cloudron -CodiMD is available as a 1-click install on [Cloudron](https://cloudron.io). Cloudron makes it easy to run apps like CodiMD on your server and keep them up-to-date and secure. +HedgeDoc is available as a 1-click install on [Cloudron](https://cloudron.io). Cloudron makes it easy to run apps like HedgeDoc on your server and keep them up-to-date and secure. [![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=io.hackmd.cloudronapp) The source code for the package can be found [here](https://git.cloudron.io/cloudron/codimd-app). There is a [demo instance](https://my.demo.cloudron.io) (username: cloudron password: cloudron) where -you can experiment with running CodiMD. +you can experiment with running HedgeDoc. diff --git a/docs/setup/docker-linuxserver.md b/docs/setup/docker-linuxserver.md index 344bcfab6..58d5c8da1 100644 --- a/docs/setup/docker-linuxserver.md +++ b/docs/setup/docker-linuxserver.md @@ -1,12 +1,12 @@ -# LinuxServer.io CodiMD Image +# LinuxServer.io HedgeDoc Image [![LinuxServer.io Discord](https://img.shields.io/discord/354974912613449730.svg?logo=discord&label=LSIO%20Discord&style=flat-square)](https://discord.gg/YWrKVTn)[![container version badge](https://images.microbadger.com/badges/version/linuxserver/codimd.svg)](https://microbadger.com/images/linuxserver/codimd "Get your own version badge on microbadger.com")[![container image size badge](https://images.microbadger.com/badges/image/linuxserver/codimd.svg)](https://microbadger.com/images/linuxserver/codimd "Get your own version badge on microbadger.com")![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/codimd.svg)![Docker Stars](https://img.shields.io/docker/stars/linuxserver/codimd.svg)[![Build Status](https://ci.linuxserver.io/buildStatus/icon?job=Docker-Pipeline-Builders/docker-codimd/master)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-codimd/job/master/)[![LinuxServer.io CI summary](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/codimd/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/codimd/latest/index.html) [LinuxServer.io](https://linuxserver.io) have created an Ubuntu-based multi-arch container image for x86-64, arm64 and armhf which supports PDF export from all architectures using [PhantomJS](https://phantomjs.org/). - It supports all the environment variables detailed in the [configuration documentation](../configuration-env-vars.md) to modify it according to your needs. -- It gets rebuilt on new releases from CodiMD and also weekly if necessary to update any other package changes in the underlying container, making it easy to keep your CodiMD instance up to date. -- It also details how to easily [utilize Docker networking to reverse proxy](https://github.com/linuxserver/docker-codimd/#application-setup) CodiMD using their [LetsEncrypt docker image](https://github.com/linuxserver/docker-letsencrypt) +- It gets rebuilt on new releases from HedgeDoc and also weekly if necessary to update any other package changes in the underlying container, making it easy to keep your HedgeDoc instance up to date. +- It also details how to easily [utilize Docker networking to reverse proxy](https://github.com/linuxserver/docker-codimd/#application-setup) HedgeDoc using their [LetsEncrypt docker image](https://github.com/linuxserver/docker-letsencrypt) -In order to contribute check the LinuxServer.io [GitHub repository](https://github.com/linuxserver/docker-codimd/) for CodiMD. +In order to contribute check the LinuxServer.io [GitHub repository](https://github.com/linuxserver/docker-codimd/) for HedgeDoc. And to find all tags and versions of the image, check the [Docker Hub repository](https://hub.docker.com/r/linuxserver/codimd). diff --git a/docs/setup/docker.md b/docs/setup/docker.md index a9a8b240c..894dcd4ce 100644 --- a/docs/setup/docker.md +++ b/docs/setup/docker.md @@ -1,20 +1,20 @@ -# CodiMD Docker Image +# HedgeDoc Docker Image -[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://github.com/codimd/container/raw/master/docker-compose.yml&stack_name=codimd) +[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://github.com/hedgedoc/container/raw/master/docker-compose.yml&stack_name=hedgedoc) ## Debian-based version -[![Docker Repository on Quay](https://quay.io/repository/codimd/server/status "Docker Repository on Quay")](https://quay.io/repository/codimd/server) +[![Docker Repository on Quay](https://quay.io/repository/hedgedoc/server/status "Docker Repository on Quay")](https://quay.io/repository/hedgedoc/server) ## Alpine-based version -[![Docker Repository on Quay](https://quay.io/repository/codimd/server/status "Docker Repository on Quay")](https://quay.io/repository/codimd/server) +[![Docker Repository on Quay](https://quay.io/repository/hedgedoc/server/status "Docker Repository on Quay")](https://quay.io/repository/hedgedoc/server) -The easiest way to setup CodiMD using docker are using the following three commands: +The easiest way to setup HedgeDoc using docker are using the following three commands: ```sh -git clone https://github.com/codimd/container.git codimd-container -cd codimd-container +git clone https://github.com/hedgedoc/container.git hedgedoc-container +cd hedgedoc-container docker-compose up ``` -Read more about it in the [container repository](https://github.com/codimd/container). +Read more about it in the [container repository](https://github.com/hedgedoc/container). diff --git a/docs/setup/heroku.md b/docs/setup/heroku.md index 9f62e58ca..ea1356d17 100644 --- a/docs/setup/heroku.md +++ b/docs/setup/heroku.md @@ -1,6 +1,6 @@ # Heroku Deployment -You can quickly setup a sample Heroku CodiMD application by clicking the button +You can quickly setup a sample Heroku HedgeDoc application by clicking the button below. -[![Deploy on Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/codimd/server/tree/master) +[![Deploy on Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/hedgedoc/server/tree/master) diff --git a/docs/setup/kubernetes.md b/docs/setup/kubernetes.md index 91c571884..6706b911e 100644 --- a/docs/setup/kubernetes.md +++ b/docs/setup/kubernetes.md @@ -2,4 +2,4 @@ To install use `helm install stable/hackmd`. -For all further details, please check out the offical CodiMD [K8s helm chart](https://github.com/kubernetes/charts/tree/master/stable/hackmd). +For all further details, please check out the offical HedgeDoc [K8s helm chart](https://github.com/kubernetes/charts/tree/master/stable/hackmd). diff --git a/docs/setup/yunohost.md b/docs/setup/yunohost.md index a7666df99..9ec9d45b8 100644 --- a/docs/setup/yunohost.md +++ b/docs/setup/yunohost.md @@ -1,8 +1,8 @@ YunoHost === -CodiMD is available as a 1-click install on [YunoHost](https://yunohost.org/). YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server. +HedgeDoc is available as a 1-click install on [YunoHost](https://yunohost.org/). YunoHost is a Debian GNU/Linux based distribution packaged with free software that automates the installation of a personal web server. -[![Install CodiMD with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd) +[![Install HedgeDoc with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=codimd) -The source code for the package can be found [here](https://github.com/YunoHost-Apps/codimd_ynh). \ No newline at end of file +The source code for the package can be found [here](https://github.com/YunoHost-Apps/codimd_ynh). diff --git a/docs/slide-options.md b/docs/slide-options.md index ec68f717c..3cf0f682a 100644 --- a/docs/slide-options.md +++ b/docs/slide-options.md @@ -4,7 +4,7 @@ If you're getting started with reveal.js slides, there are a few things you need There are two types of slides, those that transition horizontally and those that transition vertically (subslides). -The following separators are used for each in the CodiMD syntax: +The following separators are used for each in the HedgeDoc syntax: ```markdown # First Slide diff --git a/docs/url-scheme.md b/docs/url-scheme.md index e2f2709ed..35c12fdef 100644 --- a/docs/url-scheme.md +++ b/docs/url-scheme.md @@ -1,6 +1,6 @@ # URL scheme -CodiMD has three different modes for viewing a stored note. Each mode has a slightly different URL for accessing it. This document gives an overview about these URLs. +HedgeDoc has three different modes for viewing a stored note. Each mode has a slightly different URL for accessing it. This document gives an overview about these URLs. We assume that you replace `pad.example.com` with the domain of your instance. ## Default (random) diff --git a/lib/config/default.js b/lib/config/default.js index 38bb164bf..00fa9eaeb 100644 --- a/lib/config/default.js +++ b/lib/config/default.js @@ -164,7 +164,7 @@ module.exports = { openID: false, // linkifyHeaderStyle - How is a header text converted into a link id. // Header Example: "3.1. Good Morning my Friend! - Do you have 5$?" - // * 'keep-case' is the legacy CodiMD value. + // * 'keep-case' is the legacy HedgeDoc value. // Generated id: "31-Good-Morning-my-Friend---Do-you-have-5" // * 'lower-case' is the same like legacy (see above), but converted to lower-case. // Generated id: "#31-good-morning-my-friend---do-you-have-5" diff --git a/lib/config/index.js b/lib/config/index.js index b5461a8d0..495b54857 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -157,7 +157,7 @@ for (let i = keys.length; i--;) { // Notify users about the prefix change and inform them they use legacy prefix for environment variables if (Object.keys(process.env).toString().indexOf('HMD_') !== -1) { - logger.warn('Using legacy HMD prefix for environment variables. Please change your variables in future. For details see: https://github.com/codimd/server#environment-variables-will-overwrite-other-server-configs') + logger.warn('Using legacy HMD prefix for environment variables. Please change your variables in future. For details see: https://github.com/hedgedoc/server#environment-variables-will-overwrite-other-server-configs') } // Generate session secret if it stays on default values diff --git a/lib/models/note.js b/lib/models/note.js index edc79639b..9fe023598 100644 --- a/lib/models/note.js +++ b/lib/models/note.js @@ -350,7 +350,7 @@ module.exports = function (sequelize, DataTypes) { return title || 'Untitled' } Note.generateWebTitle = function (title) { - title = !title || title === 'Untitled' ? 'CodiMD - Collaborative markdown notes' : title + ' - CodiMD' + title = !title || title === 'Untitled' ? 'HedgeDoc - Collaborative markdown notes' : title + ' - HedgeDoc' return title } Note.extractNoteTags = function (meta, $) { diff --git a/lib/response.js b/lib/response.js index 2e944e32e..a56273a2a 100644 --- a/lib/response.js +++ b/lib/response.js @@ -97,7 +97,7 @@ function githubActionGist (req, res, note) { request({ url: gistUrl, headers: { - 'User-Agent': 'CodiMD', + 'User-Agent': 'HedgeDoc', 'Authorization': 'token ' + accessToken }, method: 'POST', diff --git a/lib/web/middleware/codiMDVersion.js b/lib/web/middleware/hedgeDocVersion.js similarity index 77% rename from lib/web/middleware/codiMDVersion.js rename to lib/web/middleware/hedgeDocVersion.js index e7775876f..c34e375b7 100644 --- a/lib/web/middleware/codiMDVersion.js +++ b/lib/web/middleware/hedgeDocVersion.js @@ -4,7 +4,7 @@ const config = require('../../config') module.exports = function (req, res, next) { res.set({ - 'CodiMD-Version': config.version + 'HedgeDoc-Version': config.version }) return next() } diff --git a/lib/web/note/controller.js b/lib/web/note/controller.js index e537fe08a..f79574dfa 100644 --- a/lib/web/note/controller.js +++ b/lib/web/note/controller.js @@ -74,7 +74,7 @@ exports.showNote = function (req, res, next) { 'Cache-Control': 'private', // only cache by client 'X-Robots-Tag': 'noindex, nofollow' // prevent crawling }) - return res.render('codimd.ejs', { + return res.render('hedgedoc.ejs', { title: title, opengraph: opengraph }) diff --git a/package.json b/package.json index 1f0f2ce3a..cb3bac3bf 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "CodiMD", + "name": "HedgeDoc", "version": "1.6.0", "description": "Realtime collaborative markdown notes on all platforms.", "main": "app.js", @@ -58,7 +58,7 @@ "jquery-mousewheel": "^3.1.13", "jquery-ui": "^1.12.1", "js-cookie": "^2.1.3", - "js-sequence-diagrams": "git+https://github.com/codimd/js-sequence-diagrams.git", + "js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git", "js-yaml": "^3.13.1", "jsdom-nogyp": "^0.8.3", "keymaster": "^1.6.2", @@ -84,7 +84,7 @@ "mathjax": "^2.7.6", "mattermost": "^3.4.0", "mermaid": "^8.5.1", - "meta-marked": "git+https://github.com/codimd/meta-marked", + "meta-marked": "git+https://github.com/hedgedoc/meta-marked", "method-override": "^2.3.7", "minimist": "^1.2.0", "minio": "^6.0.0", @@ -145,13 +145,13 @@ "engines": { "node": ">=10.13" }, - "bugs": "https://github.com/codimd/server/issues", + "bugs": "https://github.com/hedgedoc/hedgedoc/issues", "keywords": [ "Collaborative", "Markdown", "Notes" ], - "homepage": "https://codimd.org", + "homepage": "https://hedgedoc.org", "maintainers": [ { "name": "Claudius Coenen", @@ -165,7 +165,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/codimd/server.git" + "url": "https://github.com/hedgedoc/hedgedoc.git" }, "devDependencies": { "babel-cli": "^6.26.0", diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png deleted file mode 100644 index 6978e2627..000000000 Binary files a/public/apple-touch-icon.png and /dev/null differ diff --git a/public/banner/banner_h_bw.svg b/public/banner/banner_h_bw.svg new file mode 100644 index 000000000..8721be9e6 --- /dev/null +++ b/public/banner/banner_h_bw.svg @@ -0,0 +1 @@ + diff --git a/public/banner/banner_h_wb.svg b/public/banner/banner_h_wb.svg new file mode 100644 index 000000000..9c4500009 --- /dev/null +++ b/public/banner/banner_h_wb.svg @@ -0,0 +1 @@ + diff --git a/public/banner/banner_vertical_color.svg b/public/banner/banner_vertical_color.svg new file mode 100644 index 000000000..cd5f80101 --- /dev/null +++ b/public/banner/banner_vertical_color.svg @@ -0,0 +1 @@ + diff --git a/public/codimd-icon-1024.png b/public/codimd-icon-1024.png deleted file mode 100644 index eebdcf784..000000000 Binary files a/public/codimd-icon-1024.png and /dev/null differ diff --git a/public/css/index.css b/public/css/index.css index d266ad885..992c9a7b9 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -20,6 +20,21 @@ body.night{ background: #333 !important; } +body.night .no-night { + display: none; +} + +body:not(.night) .night { + display: none; +} + +.h-100 { + height: 100%; +} +.header-brand { + padding: 6px; +} + .CodeMirror { font-family: "Source Code Pro", Consolas, monaco, monospace; letter-spacing: 0.025em; diff --git a/public/docs/features.md b/public/docs/features.md index 9429da9e5..f4582728c 100644 --- a/public/docs/features.md +++ b/public/docs/features.md @@ -2,11 +2,11 @@ ## Introduction - **CodiMD** is a real-time, multi-platform collaborative markdown note editor. + **HedgeDoc** is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your **desktop**, **tablet** or even on the **phone**. You can sign-in via multiple auth providers like **Facebook**, **Twitter**, **GitHub** and many more on the [*homepage*](/). -If you experience any *issues*, feel free to report it on [**GitHub**](https://github.com/codimd/server/issues). +If you experience any *issues*, feel free to report it on [**GitHub**](https://github.com/hedgedoc/hedgedoc/issues). Or meet us on [**Matrix.org**](https://matrix.to/#/#hedgedoc:matrix.org) for dev-talk and interactive help. **Thank you very much!** @@ -27,7 +27,7 @@ Or meet us on [**Matrix.org**](https://matrix.to/#/#hedgedoc:matrix.org) for dev ### Night Mode -When you are tired of a white screen and like a night mode, click on the little moon and turn on the night view of CodiMD. +When you are tired of a white screen and like a night mode, click on the little moon and turn on the night view of HedgeDoc. The editor view, which is in night mode by default, can also be toggled between night and day view using the the little sun. @@ -73,7 +73,7 @@ There are four possible options: Notes can be embedded as follows: ```xml - + ``` ### [Slide Mode](./slide-example) @@ -524,7 +524,7 @@ Center aligned columns #### Links -[link text](https://demo.codimd.org) +[link text](https://demo.hedgedoc.org) [link with title](https://nodeca.github.io/pica/demo/ "title text!") Autoconverted link diff --git a/public/docs/privacy.md.example b/public/docs/privacy.md.example index cb9f1122a..e2ec0e790 100644 --- a/public/docs/privacy.md.example +++ b/public/docs/privacy.md.example @@ -5,9 +5,9 @@ We process the following data, for the following purposes: | your data | our usage | | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | IP-Address | Used to communicate with your browser and our servers. It's may exposed to third-parties which provide resources for this service. These services are, depending on your login method, the document you visit and the setup of this instance: Google, Disqus, MathJax, GitHub, SlideShare/LinkedIn, yahoo, Libravatar, Imgur, Amazon, and Cloudflare. | -| Usernames and profiles | Your username as well as user profiles that are connected with it are transmitted and stored by us to provide a useful login integration with services like GitHub, Facebook, Twitter, GitLab, Dropbox, Google. Depending on the setup of this CodiMD instance there are maybe other third-parties involved using SAML, LDAP or the integration with a Mattermost instance. | -| Profile pictures | Your profile picture is either loaded from the service you used to login, the CodiMD instance or Libravatar. | -| Uploaded pictures | Pictures that are uploaded for documents are either uploaded to Amazon S3, Imgur, a minio instance or the local filesystem of the CodiMD server. | +| Usernames and profiles | Your username as well as user profiles that are connected with it are transmitted and stored by us to provide a useful login integration with services like GitHub, Facebook, Twitter, GitLab, Dropbox, Google. Depending on the setup of this HedgeDoc instance there are maybe other third-parties involved using SAML, LDAP or the integration with a Mattermost instance. | +| Profile pictures | Your profile picture is either loaded from the service you used to login, the HedgeDoc instance or Libravatar. | +| Uploaded pictures | Pictures that are uploaded for documents are either uploaded to Amazon S3, Imgur, a minio instance or the local filesystem of the HedgeDoc server. | All account data and notes are stored in a mysql/postgres/sqlite database. Besides the user accounts and the document themselves also relationships between the documents and the user accounts are stored. This includes ownership, authorship and revisions of all changes made during the creation of a note. diff --git a/public/docs/yaml-metadata.md b/public/docs/yaml-metadata.md index 10956382b..d7907005c 100644 --- a/public/docs/yaml-metadata.md +++ b/public/docs/yaml-metadata.md @@ -96,7 +96,7 @@ dir: rtl ## breaks This option means the hardbreaks in the note will be parsed or be ignore. -The original markdown syntax breaks only if you put space twice, but CodiMD choose to breaks every time you enter a break. +The original markdown syntax breaks only if you put space twice, but HedgeDoc choose to breaks every time you enter a break. You can only use whether `true` or `false`. > default: not set (which will be true) @@ -125,7 +125,7 @@ This option allows you to enable Disqus with your shortname. **Example** ```yml -disqus: codimd +disqus: hedgedoc ``` ## type diff --git a/public/favicon.png b/public/favicon.png deleted file mode 100644 index 1600e49c2..000000000 Binary files a/public/favicon.png and /dev/null differ diff --git a/public/icons/android-chrome-192x192.png b/public/icons/android-chrome-192x192.png new file mode 100644 index 000000000..1b42c8b78 Binary files /dev/null and b/public/icons/android-chrome-192x192.png differ diff --git a/public/icons/android-chrome-512x512.png b/public/icons/android-chrome-512x512.png new file mode 100644 index 000000000..1eedb77af Binary files /dev/null and b/public/icons/android-chrome-512x512.png differ diff --git a/public/icons/apple-touch-icon.png b/public/icons/apple-touch-icon.png new file mode 100644 index 000000000..54deb68d3 Binary files /dev/null and b/public/icons/apple-touch-icon.png differ diff --git a/public/icons/browserconfig.xml b/public/icons/browserconfig.xml new file mode 100644 index 000000000..be3e03846 --- /dev/null +++ b/public/icons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #b51f08 + + + diff --git a/public/icons/favicon-16x16.png b/public/icons/favicon-16x16.png new file mode 100644 index 000000000..695b8aaa0 Binary files /dev/null and b/public/icons/favicon-16x16.png differ diff --git a/public/icons/favicon-32x32.png b/public/icons/favicon-32x32.png new file mode 100644 index 000000000..80afec65c Binary files /dev/null and b/public/icons/favicon-32x32.png differ diff --git a/public/icons/favicon.ico b/public/icons/favicon.ico new file mode 100644 index 000000000..7188efc4a Binary files /dev/null and b/public/icons/favicon.ico differ diff --git a/public/views/codimd/footer.ejs b/public/icons/html_code.html similarity index 100% rename from public/views/codimd/footer.ejs rename to public/icons/html_code.html diff --git a/public/icons/mstile-144x144.png b/public/icons/mstile-144x144.png new file mode 100644 index 000000000..fa2152abd Binary files /dev/null and b/public/icons/mstile-144x144.png differ diff --git a/public/icons/mstile-150x150.png b/public/icons/mstile-150x150.png new file mode 100644 index 000000000..5b277a2cb Binary files /dev/null and b/public/icons/mstile-150x150.png differ diff --git a/public/icons/mstile-310x150.png b/public/icons/mstile-310x150.png new file mode 100644 index 000000000..ab952960c Binary files /dev/null and b/public/icons/mstile-310x150.png differ diff --git a/public/icons/mstile-310x310.png b/public/icons/mstile-310x310.png new file mode 100644 index 000000000..a43ae7cca Binary files /dev/null and b/public/icons/mstile-310x310.png differ diff --git a/public/icons/mstile-70x70.png b/public/icons/mstile-70x70.png new file mode 100644 index 000000000..ce4b9fa96 Binary files /dev/null and b/public/icons/mstile-70x70.png differ diff --git a/public/icons/safari-pinned-tab.svg b/public/icons/safari-pinned-tab.svg new file mode 100644 index 000000000..aedf0d299 --- /dev/null +++ b/public/icons/safari-pinned-tab.svg @@ -0,0 +1 @@ + diff --git a/public/icons/site.webmanifest b/public/icons/site.webmanifest new file mode 100644 index 000000000..a3d617827 --- /dev/null +++ b/public/icons/site.webmanifest @@ -0,0 +1,18 @@ +{ + "name": "HedgeDoc", + "short_name": "HedgeDoc", + "icons": [ + { + "src": "/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/icons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#303030", + "background_color": "#303030" +} diff --git a/public/js/cover.js b/public/js/cover.js index 39f748e90..ed10afbff 100644 --- a/public/js/cover.js +++ b/public/js/cover.js @@ -318,7 +318,7 @@ $('.ui-save-history').click(() => { const blob = new Blob([history], { type: 'application/json;charset=utf-8' }) - saveAs(blob, `codimd_history_${moment().format('YYYYMMDDHHmmss')}`, true) + saveAs(blob, `hedgedoc_history_${moment().format('YYYYMMDDHHmmss')}`, true) }) }) diff --git a/public/js/extra.js b/public/js/extra.js index 0a95b1b1a..49dd23ce4 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -117,9 +117,9 @@ function getTitle (view) { export function renderTitle (view) { let title = getTitle(view) if (title) { - title += ' - CodiMD' + title += ' - HedgeDoc' } else { - title = 'CodiMD - Collaborative markdown notes' + title = 'HedgeDoc - Collaborative markdown notes' } return title } diff --git a/public/views/codimd.ejs b/public/views/codimd.ejs deleted file mode 100644 index 7818346c3..000000000 --- a/public/views/codimd.ejs +++ /dev/null @@ -1,15 +0,0 @@ - - - - - <%- include codimd/head %> - - - - <%- include codimd/header %> - <%- include codimd/body %> - <%- include codimd/footer %> - <%- include codimd/foot %> - - - diff --git a/public/views/error.ejs b/public/views/error.ejs index 3ed76c8ce..e208d778a 100644 --- a/public/views/error.ejs +++ b/public/views/error.ejs @@ -2,18 +2,18 @@ - <%- include codimd/head %> + <%- include hedgedoc/head %> - <%- include codimd/header %> + <%- include hedgedoc/header %>

<%- code %> <%- detail %> <%- msg %>

- <%- include codimd/footer %> + <%- include hedgedoc/footer %> diff --git a/public/views/hedgedoc.ejs b/public/views/hedgedoc.ejs new file mode 100644 index 000000000..1a6061ab2 --- /dev/null +++ b/public/views/hedgedoc.ejs @@ -0,0 +1,15 @@ + + + + + <%- include hedgedoc/head %> + + + + <%- include hedgedoc/header %> + <%- include hedgedoc/body %> + <%- include hedgedoc/footer %> + <%- include hedgedoc/foot %> + + + diff --git a/public/views/codimd/body.ejs b/public/views/hedgedoc/body.ejs similarity index 100% rename from public/views/codimd/body.ejs rename to public/views/hedgedoc/body.ejs diff --git a/public/views/codimd/foot.ejs b/public/views/hedgedoc/foot.ejs similarity index 100% rename from public/views/codimd/foot.ejs rename to public/views/hedgedoc/foot.ejs diff --git a/public/views/hedgedoc/footer.ejs b/public/views/hedgedoc/footer.ejs new file mode 100644 index 000000000..e69de29bb diff --git a/public/views/codimd/head.ejs b/public/views/hedgedoc/head.ejs similarity index 92% rename from public/views/codimd/head.ejs rename to public/views/hedgedoc/head.ejs index 71e261fbb..e7b13e8a0 100644 --- a/public/views/codimd/head.ejs +++ b/public/views/hedgedoc/head.ejs @@ -4,12 +4,13 @@ +<%- include ../includes/favicon %> <% for (var og in opengraph) { %> <% if (opengraph.hasOwnProperty(og) && opengraph[og].trim() !== '') { %> <% }} if (!opengraph.hasOwnProperty('image')) { %> - - + + <% } %> diff --git a/public/views/codimd/header.ejs b/public/views/hedgedoc/header.ejs similarity index 97% rename from public/views/codimd/header.ejs rename to public/views/hedgedoc/header.ejs index 6bf37804d..f700cd5b6 100644 --- a/public/views/codimd/header.ejs +++ b/public/views/hedgedoc/header.ejs @@ -13,7 +13,10 @@ - CodiMD + + HedgeDoc + HedgeDoc +