{"id":16271061,"url":"https://github.com/b4rtaz/t3mpl-server","last_synced_at":"2026-05-02T05:08:10.811Z","repository":{"id":110508632,"uuid":"312616684","full_name":"b4rtaz/t3mpl-server","owner":"b4rtaz","description":"Server for T3MPL Editor.","archived":false,"fork":false,"pushed_at":"2021-12-15T20:40:30.000Z","size":107,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-14T11:52:22.619Z","etag":null,"topics":["nodejs","nodejs-server","server","static-site-generator","t3mpl"],"latest_commit_sha":null,"homepage":"","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/b4rtaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-13T15:43:18.000Z","updated_at":"2021-12-21T03:49:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"6a1dfe6d-4269-44cc-a989-b9e25c4cc288","html_url":"https://github.com/b4rtaz/t3mpl-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b4rtaz%2Ft3mpl-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b4rtaz%2Ft3mpl-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b4rtaz%2Ft3mpl-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b4rtaz%2Ft3mpl-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b4rtaz","download_url":"https://codeload.github.com/b4rtaz/t3mpl-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247870325,"owners_count":21009831,"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":["nodejs","nodejs-server","server","static-site-generator","t3mpl"],"created_at":"2024-10-10T18:12:19.581Z","updated_at":"2026-05-02T05:08:10.755Z","avatar_url":"https://github.com/b4rtaz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# T3MPL Server\n\n[![Build Status](https://api.travis-ci.com/b4rtaz/t3mpl-server.svg?branch=master)](https://app.travis-ci.com/github/b4rtaz/t3mpl-server) [![Coverage Status](https://coveralls.io/repos/github/b4rtaz/t3mpl-server/badge.svg?branch=master)](https://coveralls.io/github/b4rtaz/t3mpl-server?branch=master) [![License: MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](/LICENSE) [![Twitter: b4rtaz](https://img.shields.io/twitter/follow/b4rtaz.svg?style=social)](https://twitter.com/b4rtaz)\n\nThis is the server for [T3MPL Editor](https://github.com/b4rtaz/t3mpl-editor). You can forget about .zip/.t3data/.t3mpl files. You may update your site directly from the editor.\n\n## 🔨 How to Build\n\n[Node.js](https://nodejs.org/en/) is required. Clone this repository.\n\n`git clone https://github.com/b4rtaz/t3mpl-server.git`\n\nRun `scripts/install.sh`:\n\n`bash scripts/install.sh`\n\n## ⚡ How to Run\n\nYou need to build the server. The instruction is above. To start server, execute:\n\n`npm run serve`\n\n## ⚙️ Configuration\n\nThe server uses `configuration.json` file. This file will be created when you run `scripts/install.sh`. The server supports only that method for now.\n\n#### Session\n\nThis project uses [cookie session](https://github.com/expressjs/cookie-session#readme). This middleware does not require any database, but it requires secret keys to validate session cookies. **It is very important to set custom keys for each instance of server.**\n\n```json\n\"session\": {\n    \"secretKeys\": [\n        \"\u003center_session_secret_key_1_here\u003e\",\n        \"\u003center_session_secret_key_2_here\u003e\",\n        \"\u003center_session_secret_key_3_here\u003e\"\n    ],\n    \"maxAge\": 43200000\n}\n```\n\nYou can use `scripts/random-session-keys.js` to generate new keys.\n\n`node scripts/random-session-keys.js configuration.json`\n\n#### Users\n\nThe server support many users. \n\n* `name` - user name,\n* `hashedPassword` - hashed password by SHA256, you may use [this tool](https://emn178.github.io/online-tools/sha256.html) for that.\n\n```json\n\"users\": [\n    {\n        \"name\": \"\u003cUSER_NAME\u003e\",\n        \"hashedPassword\": \"\u003cSHA_256_HASH\u003e\"\n    }\n]\n```\n\nThe default configuration contains the `admin` user with the `admin` password.\n\n#### Websites\n\nEach user can have many websites.\n\n* `name` - display name,\n* `owner` - user name of owner,\n* `templateDirPath` - relative or absolute path to template directory, in this directory should be `template.yaml` file,\n* `dataDirPath` - relative or absolute path to data directory, in this directory should be `data.json` file,\n* `releaseDirPath` - relative or absolute path to release directory, the generator generates final website here.\n* `keepReleaseFiles` - the generator cleans the release dir before upload a new version, you can specify which files/directories should be kept in. This field doesn't support subdirectories.\n\nThe server **must have** access to read/write provides directories.\n\n```json\n\"websites\": [\n    {\n        \"name\": \"boilerplate\",\n        \"owner\": \"admin\",\n        \"templateDirPath\": \"./websites/boilerplate/template\",\n        \"dataDirPath\": \"./websites/boilerplate/data\",\n        \"releaseDirPath\": \"./websites/boilerplate/release\",\n        \"keepReleaseFiles\": [\".gitignore\", \"dirname\"]\n    }\n]\n```\n\n## 💡 License\n\nThis project is released under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb4rtaz%2Ft3mpl-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb4rtaz%2Ft3mpl-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb4rtaz%2Ft3mpl-server/lists"}