{"id":13602258,"url":"https://github.com/contentjet/contentjet-api","last_synced_at":"2025-04-12T00:31:35.427Z","repository":{"id":27179746,"uuid":"109573812","full_name":"contentjet/contentjet-api","owner":"contentjet","description":"Headless API-first content management system","archived":false,"fork":false,"pushed_at":"2023-01-11T00:52:12.000Z","size":2107,"stargazers_count":95,"open_issues_count":23,"forks_count":6,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-03-25T20:33:35.613Z","etag":null,"topics":["api","api-first-cms","cms","headless","headless-cms","koa2","node","objectionjs","rest-api"],"latest_commit_sha":null,"homepage":"https://contentjet.github.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/contentjet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-05T11:34:20.000Z","updated_at":"2024-12-14T15:35:06.000Z","dependencies_parsed_at":"2023-01-14T06:10:14.656Z","dependency_job_id":null,"html_url":"https://github.com/contentjet/contentjet-api","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentjet%2Fcontentjet-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentjet%2Fcontentjet-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentjet%2Fcontentjet-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contentjet%2Fcontentjet-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/contentjet","download_url":"https://codeload.github.com/contentjet/contentjet-api/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248501271,"owners_count":21114640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-first-cms","cms","headless","headless-cms","koa2","node","objectionjs","rest-api"],"created_at":"2024-08-01T18:01:18.073Z","updated_at":"2025-04-12T00:31:35.116Z","avatar_url":"https://github.com/contentjet.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","api"],"sub_categories":[],"readme":"# contentjet-api\n\n![license](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)\n\nA Node based back end for contentjet, a powerful headless API-first CMS. Built with [Koa](http://koajs.com/), [Objection](http://vincit.github.io/objection.js/) and [PostgreSQL](https://www.postgresql.org/).\n\nContentjet is composed of 2 discrete applications, the backend API contentjet-api (this repository) and the frontend HTML user interface [contentjet-ui][contentjet-ui].\n\nFor more information and hosting documentation please visit **[contentjet.github.io][contentjet]**.\n\n![Contentjet](https://s3.amazonaws.com/github.contentjet.io/hero1.jpg)\n\n## Development\n\n### Requirements\n\n* Node 8+\n* NPM 5+\n* PostgreSQL 9.5+\n\n### 1. Installation\n\n```\nnpm install\n```\n\n### 2. Configuration\n\nThe app is configurable through the use of environment variables. Environment variables can either be exported directly or you may optionally create a `.env` file in the root of the repository and specify them there. Note any _exported_ variables will take precedence over those defined in `.env`. See [dotenv](https://github.com/motdotla/dotenv) for more details.\n\nFor a complete list of all options refer to `src/config/index.ts`. While _most_ options have default fallbacks you will need to provide values for the following:\n\n#### Secret key\n\nSecret key is used in the hashing of passwords and tokens. You must supply a random string to this value and be sure to keep it secret!\n\n```\nSECRET_KEY=yoursupersecretkey\n```\n\n#### Database\n\nDatabase connection settings. Note only PostgreSQL 9.5+ is supported.\n\n```\nPOSTGRES_HOST=localhost\nPOSTGRES_PORT=5432\nPOSTGRES_DB=contentjet-api\nPOSTGRES_USER=postgres\nPOSTGRES_PASSWORD=password\n```\n\n#### URLs\n\nThe application needs to know where it's hosted.\n\nFRONTEND_URL is the url hosting [contentjet-ui][contentjet-ui].\n\n```\nFRONTEND_URL=https://example.com\n```\n\nBACKEND_URL is the url hosting _this_ application ([contentjet-api][contentjet-api]).\n\n```\nBACKEND_URL=https://api.example.com\n```\n\n#### Mail\n\nYou MUST provide the following SMTP settings for email sending.\n\n```\nMAIL_FROM=noreply@your-domain.com\nSMTP_HOST=your-smtp-host\nSMTP_PORT=your-smtp-host-port\nSMTP_USER=your-smtp-user\nSMTP_PASSWORD=your-smtp-password\n```\n\n### 3. Database migration\n\nRun the following command to create the required tables in your database.\n\n```\nnpm run migrate\n```\n\n### 4. Create application administrator\n\nYou must create at least one administrator user.\n\n```\nnpm run create-admin-user\n```\n\n### 5. Run\n\nStart the server.\n\n```\nnpm run dev\n```\n\n[contentjet-ui]: https://github.com/contentjet/contentjet-ui\n[contentjet-api]: https://github.com/contentjet/contentjet-api\n[contentjet]: https://contentjet.github.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontentjet%2Fcontentjet-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontentjet%2Fcontentjet-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontentjet%2Fcontentjet-api/lists"}