structkit 3.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. structkit/__init__.py +6 -0
  2. structkit/commands/__init__.py +17 -0
  3. structkit/commands/completion.py +65 -0
  4. structkit/commands/generate.py +397 -0
  5. structkit/commands/generate_schema.py +67 -0
  6. structkit/commands/import.py +63 -0
  7. structkit/commands/info.py +87 -0
  8. structkit/commands/init.py +52 -0
  9. structkit/commands/list.py +89 -0
  10. structkit/commands/mcp.py +100 -0
  11. structkit/commands/validate.py +129 -0
  12. structkit/completers.py +54 -0
  13. structkit/content_fetcher.py +249 -0
  14. structkit/contribs/README.md +271 -0
  15. structkit/contribs/ansible-playbook.yaml +38 -0
  16. structkit/contribs/chef-cookbook.yaml +51 -0
  17. structkit/contribs/ci-cd-pipelines.yaml +67 -0
  18. structkit/contribs/cloudformation-files.yaml +21 -0
  19. structkit/contribs/configs/chglog.yaml +31 -0
  20. structkit/contribs/configs/codeowners.yaml +3 -0
  21. structkit/contribs/configs/devcontainer.yaml +35 -0
  22. structkit/contribs/configs/editor-config.yaml +11 -0
  23. structkit/contribs/configs/eslint.yaml +30 -0
  24. structkit/contribs/configs/jshint.yaml +11 -0
  25. structkit/contribs/configs/kubectl.yaml +23 -0
  26. structkit/contribs/configs/prettier.yaml +19 -0
  27. structkit/contribs/docker-files.yaml +27 -0
  28. structkit/contribs/documentation-template.yaml +33 -0
  29. structkit/contribs/git-hooks.yaml +19 -0
  30. structkit/contribs/github/chatmodes/plan.yaml +18 -0
  31. structkit/contribs/github/instructions/generic.yaml +5 -0
  32. structkit/contribs/github/prompts/generic.yaml +4 -0
  33. structkit/contribs/github/prompts/react-form.yaml +17 -0
  34. structkit/contribs/github/prompts/security-api.yaml +8 -0
  35. structkit/contribs/github/prompts/struct.yaml +90 -0
  36. structkit/contribs/github/templates.yaml +91 -0
  37. structkit/contribs/github/workflows/codeql.yaml +88 -0
  38. structkit/contribs/github/workflows/execute-tf-workflow.yaml +39 -0
  39. structkit/contribs/github/workflows/labeler.yaml +77 -0
  40. structkit/contribs/github/workflows/pre-commit.yaml +27 -0
  41. structkit/contribs/github/workflows/release-drafter.yaml +77 -0
  42. structkit/contribs/github/workflows/run-struct.yaml +30 -0
  43. structkit/contribs/github/workflows/stale.yaml +16 -0
  44. structkit/contribs/helm-chart.yaml +160 -0
  45. structkit/contribs/kubernetes-manifests.yaml +103 -0
  46. structkit/contribs/project/custom-structures.yaml +24 -0
  47. structkit/contribs/project/generic.yaml +309 -0
  48. structkit/contribs/project/go.yaml +104 -0
  49. structkit/contribs/project/java.yaml +85 -0
  50. structkit/contribs/project/n8n.yaml +100 -0
  51. structkit/contribs/project/nodejs.yaml +101 -0
  52. structkit/contribs/project/python.yaml +136 -0
  53. structkit/contribs/project/ruby.yaml +130 -0
  54. structkit/contribs/project/rust.yaml +106 -0
  55. structkit/contribs/prompts/run-struct-trigger.yaml +18 -0
  56. structkit/contribs/terraform/apps/aws-accounts.yaml +21 -0
  57. structkit/contribs/terraform/apps/environments.yaml +41 -0
  58. structkit/contribs/terraform/apps/generic.yaml +41 -0
  59. structkit/contribs/terraform/apps/github-organization.yaml +40 -0
  60. structkit/contribs/terraform/apps/init.yaml +11 -0
  61. structkit/contribs/terraform/modules/generic.yaml +58 -0
  62. structkit/contribs/vagrant-files.yaml +21 -0
  63. structkit/file_item.py +182 -0
  64. structkit/filters.py +112 -0
  65. structkit/input_store.py +35 -0
  66. structkit/logging_config.py +36 -0
  67. structkit/main.py +85 -0
  68. structkit/mcp_server.py +347 -0
  69. structkit/model_wrapper.py +47 -0
  70. structkit/template_renderer.py +258 -0
  71. structkit/utils.py +36 -0
  72. structkit-3.0.0.dist-info/METADATA +182 -0
  73. structkit-3.0.0.dist-info/RECORD +77 -0
  74. structkit-3.0.0.dist-info/WHEEL +5 -0
  75. structkit-3.0.0.dist-info/entry_points.txt +2 -0
  76. structkit-3.0.0.dist-info/licenses/LICENSE +201 -0
  77. structkit-3.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,309 @@
1
+ files:
2
+ - .config/REMOVE_ME.md:
3
+ content: |
4
+ # .config Folder
5
+
6
+ It should local configuration related to setup on local machine.
7
+ - .build/REMOVE_ME.md:
8
+ content: |
9
+ # .build Folder
10
+
11
+ This folder should contain all scripts related to build process (PowerShell, Docker compose…).
12
+ - .dockerignore:
13
+ content: |
14
+ node_modules
15
+ npm-debug.log
16
+ - .editorconfig:
17
+ content: |
18
+ # Editor configuration
19
+ root = true
20
+
21
+ [*]
22
+ indent_style = space
23
+ indent_size = 2
24
+ end_of_line = lf
25
+ charset = utf-8
26
+ trim_trailing_whitespace = true
27
+ insert_final_newline = true
28
+ - .env:
29
+ content: |
30
+ # Environment variables
31
+ NODE_ENV=development
32
+ PORT=3000
33
+ - .env.example:
34
+ content: |
35
+ # Environment variables
36
+ NODE_ENV=development
37
+ PORT=3000
38
+ - .gitattributes:
39
+ content: |
40
+ # Auto detect text files and perform LF normalization
41
+ * text=auto
42
+ - .gitignore:
43
+ content: |
44
+ # Ignore files generated by the app
45
+ /node_modules
46
+ /dist
47
+ - .gitkeep:
48
+ content: ""
49
+ - .gitmodules:
50
+ content: |
51
+ provider "aws" {
52
+ region = "{{@ aws_region @}}"
53
+ }
54
+ - .devops/apps/environments/prod/main.tf:
55
+ content: "# Terraform configuration for the prod environment"
56
+ - .devops/apps/environments/prod/providers.tf:
57
+ content: |
58
+ provider "aws" {
59
+ region = "{{@ aws_region @}}"
60
+ }
61
+ - .devops/apps/environments/stage/main.tf:
62
+ content: "# Terraform configuration for the stage environment"
63
+ - .devops/apps/environments/stage/providers.tf:
64
+ content: |
65
+ provider "aws" {
66
+ region = "{{@ aws_region @}}"
67
+ }
68
+ - .devops/apps/environments/qa/main.tf:
69
+ content: "# Terraform configuration for the qa environment"
70
+ - .devops/apps/environments/qa/providers.tf:
71
+ content: |
72
+ provider "aws" {
73
+ region = "{{@ aws_region @}}"
74
+ }
75
+ - .devops/apps/init/main.tf:
76
+ content: "# Terraform configuration for the init environment"
77
+ - .devops/apps/init/providers.tf:
78
+ content: |
79
+ provider "aws" {
80
+ region = "{{@ aws_region @}}"
81
+ }
82
+ - .github/workflows/pre-commit.yaml:
83
+ content: |
84
+ # This file defines the submodules used by the repository
85
+ # See https://git-scm.com/docs/gitmodules
86
+
87
+ # Submodule for the app
88
+ [submodule "app"]
89
+ path = app
90
+ url =
91
+ - .github/CODEOWNERS:
92
+ content: |
93
+ # This file defines the code owners for the repository
94
+ # See https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
95
+
96
+ # The owners of the repository
97
+ * @app-owner
98
+ .tf/* @devops-team
99
+ .github/* @devops-team
100
+ CODEOWNERS @devops-team
101
+ - .github/CODE_OF_CONDUCT.md:
102
+ content: |
103
+ # Code of Conduct
104
+
105
+ This project has adopted the [Contributor Covenant](https://www.contributor-covenant.org/), which is a code of conduct for open source projects. Please read the [full text](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) so that you can understand what actions will and will not be tolerated.
106
+ - .github/CONTRIBUTING.md:
107
+ content: |
108
+ # Contributing
109
+
110
+ If you would like to contribute to this project, please follow the guidelines below.
111
+
112
+ ## Issues
113
+
114
+ - If you find a bug in the project, please open an issue on the [Issues](
115
+ - .github/FUNDING.yml:
116
+ content: |
117
+ github: app-owner
118
+ - .github/ISSUE_TEMPLATE/bug_report.md:
119
+ file: https://raw.githubusercontent.com/bitnami/charts/main/.github/ISSUE_TEMPLATE/bug_report.yml
120
+ - .github/ISSUE_TEMPLATE/feature_request.md:
121
+ file: https://raw.githubusercontent.com/bitnami/charts/main/.github/ISSUE_TEMPLATE/feature_request.yml
122
+ - .github/PULL_REQUEST_TEMPLATE.md:
123
+ file: https://raw.githubusercontent.com/bitnami/charts/main/.github/PULL_REQUEST_TEMPLATE.md
124
+ - .github/SECURITY.md:
125
+ content: |
126
+ # Security Policy
127
+
128
+ If you discover a security vulnerability within this project, please report it to the app owner at <email>. All security vulnerabilities will be promptly addressed.
129
+ - .github/dependabot.yml:
130
+ file: https://raw.githubusercontent.com/bitnami/charts/main/.github/dependabot.yml
131
+ - .github/workflows/ci.yaml:
132
+ content: |
133
+ name: CI
134
+
135
+ on:
136
+ push:
137
+ branches:
138
+ - main
139
+
140
+ jobs:
141
+ build:
142
+ runs-on: ubuntu-latest
143
+
144
+ steps:
145
+ - name: Checkout code
146
+ uses: actions/checkout@v2
147
+
148
+ - name: Install dependencies
149
+ run: npm install
150
+
151
+ - name: Build
152
+ run: npm run build
153
+
154
+ - name: Test
155
+ run: npm test
156
+
157
+ - name: Deploy
158
+ run: echo "Deploying to the cloud"
159
+ - .github/workflows/pre-commit.yaml:
160
+ content: |
161
+ repos:
162
+ - repo: https://github.com/pre-commit/pre-commit-hooks
163
+ rev: v4.6.0
164
+ hooks:
165
+ - id: trailing-whitespace
166
+ - id: end-of-file-fixer
167
+ - id: check-yaml
168
+ - .mailmap:
169
+ content: |
170
+ # This file maps authors and committers to their canonical names and email addresses
171
+ # See https://git-scm.com/docs/git-check-mailmap
172
+
173
+ # Canonical name and email address for the app owner
174
+ # app-owner <
175
+ - ACKNOWLEDGEMENTS.md:
176
+ content: |
177
+ # Acknowledgements
178
+
179
+ This project would not have been possible without the help of the following people:
180
+
181
+ - app-owner <
182
+ - AUTHORS.md:
183
+ content: |
184
+ # Authors
185
+
186
+ This project was created by app-owner <
187
+
188
+ ## Contributors
189
+
190
+ - app-owner <
191
+ - CHANGELOG.md:
192
+ content: |
193
+ # Changelog
194
+
195
+ All notable changes to this project will be documented in this file.
196
+
197
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
198
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
199
+
200
+ ## [Unreleased]
201
+
202
+ ## [1.0.0] - 2021-01-01
203
+ ### Added
204
+ - Initial release
205
+ - CONTRIBUTORS.md:
206
+ content: |
207
+ # Contributors
208
+
209
+ Thanks to the following people who have contributed to this project:
210
+
211
+ - app-owner <
212
+ - Dockerfile:
213
+ content: |
214
+ # Use an official Node.js runtime as the base image
215
+ FROM node:14
216
+ # Set the working directory in the container
217
+ WORKDIR /app
218
+ # Copy package.json and package-lock.json
219
+ COPY package*.json ./
220
+ # Install Node.js dependencies
221
+ RUN npm install
222
+ # Copy the application code
223
+ COPY . .
224
+ # Expose the port the app runs on
225
+ EXPOSE 3000
226
+ # Run the application
227
+ CMD ["npm", "start"]
228
+ - LICENSE:
229
+ file: https://raw.githubusercontent.com/httpdss/structkit/main/LICENSE
230
+ - README.md:
231
+ content: |
232
+ # Generic App
233
+
234
+ ## Introduction
235
+
236
+ This is a generic app that can be used as a template for new projects.
237
+
238
+ ## Contribute
239
+
240
+ If you would like to contribute to this project, please follow the guidelines in the [CONTRIBUTING.md](.github/CONTRIBUTING.md) file.
241
+
242
+ ## License
243
+
244
+ This project is licensed under the terms of the [Apache 2.0](LICENSE) license.
245
+ - dep/REMOVE_ME.md:
246
+ content: |
247
+ # dep Folder
248
+
249
+ This is the directory where all your dependencies should be stored.
250
+ - docker-compose.yml:
251
+ content: |
252
+ version: '3'
253
+ services:
254
+ app:
255
+ build: .
256
+ ports:
257
+ - "3000:3000"
258
+ env_file:
259
+ - .env
260
+ volumes:
261
+ - .:/app
262
+ environment:
263
+ - NODE_ENV=development
264
+ - doc/REMOVE_ME.md:
265
+ content: |
266
+ # doc Folder
267
+
268
+ The documentation folder
269
+ - res/REMOVE_ME.md:
270
+ content: |
271
+ # res Folder
272
+
273
+ For all static resources in your project. For example, images.
274
+ - samples/REMOVE_ME.md:
275
+ content: |
276
+ # samples Folder
277
+
278
+ Providing “Hello World” & Co code that supports the documentation.
279
+ - src/REMOVE_ME.md:
280
+ content: |
281
+ # src Folder
282
+
283
+ The source code folder! However, in languages that use headers (or if you have a framework for your application) don’t put those files in here.
284
+ - test/REMOVE_ME.md:
285
+ content: |
286
+ # test Folder
287
+
288
+ Unit tests, integration tests… go here.
289
+ - tools/REMOVE_ME.md:
290
+ content: |
291
+ # tools Folder
292
+
293
+ Convenience directory for your use. Should contain scripts to automate tasks in the project, for example, build scripts, rename scripts. Usually contains .sh, .cmd files for example.
294
+
295
+ folders:
296
+ - .devops/apps/environments/prod:
297
+ struct: terraform/module
298
+ - .devops/apps/environments/stage:
299
+ struct: terraform/module
300
+ - .devops/apps/environments/qa:
301
+ struct: terraform/module
302
+ - .devops/apps/environments/dev:
303
+ struct: terraform/module
304
+ - .devops/apps/init:
305
+ struct: terraform/module
306
+ - ./:
307
+ struct:
308
+ - github/workflows/pre-commit
309
+ - github/workflows/release-drafter
@@ -0,0 +1,104 @@
1
+ files:
2
+ - .editorconfig:
3
+ content: |
4
+ # Editor configuration
5
+ root = true
6
+
7
+ [*]
8
+ indent_style = space
9
+ indent_size = 2
10
+ end_of_line = lf
11
+ charset = utf-8
12
+ trim_trailing_whitespace = true
13
+ insert_final_newline = true
14
+ - .env:
15
+ content: |
16
+ # Environment variables
17
+ - .env.example:
18
+ content: |
19
+ # Environment variables
20
+ - .gitignore:
21
+ content: |
22
+ # Ignore files generated by the app
23
+ .env
24
+ .venv
25
+ - LICENSE:
26
+ file: https://raw.githubusercontent.com/httpdss/structkit/main/LICENSE
27
+ - README.md:
28
+ content: |
29
+ # Generic App
30
+
31
+ ## Introduction
32
+
33
+ This is a generic app that can be used as a template for new projects.
34
+
35
+ ## Contribute
36
+
37
+ If you would like to contribute to this project, please follow the guidelines in the [CONTRIBUTING.md](.github/CONTRIBUTING.md) file.
38
+
39
+ ## License
40
+
41
+ This project is licensed under the terms of the [Apache 2.0](LICENSE) license.
42
+ - main.go:
43
+ content: |
44
+ package main
45
+
46
+ import "fmt"
47
+
48
+ func main() {
49
+ fmt.Println("Hello, World!")
50
+ }
51
+ - cmd/project_name/main.go:
52
+ content: |
53
+ package main
54
+
55
+ import "fmt"
56
+
57
+ func main() {
58
+ fmt.Println("Hello, World!")
59
+ }
60
+ - pkg/project_name/module1.go:
61
+ content: |
62
+ package project_name
63
+
64
+ import "fmt"
65
+
66
+ func Module1() {
67
+ fmt.Println("Module 1")
68
+ }
69
+ - pkg/project_name/module2.go:
70
+ content: |
71
+ package project_name
72
+
73
+ import "fmt"
74
+
75
+ func Module2() {
76
+ fmt.Println("Module 2")
77
+ }
78
+ - internal/project_name/util.go:
79
+ content: |
80
+ package project_name
81
+
82
+ import "fmt"
83
+
84
+ func Util() {
85
+ fmt.Println("Util")
86
+ }
87
+ - api/v1/api.go:
88
+ content: |
89
+ package v1
90
+
91
+ import "fmt"
92
+
93
+ func API() {
94
+ fmt.Println("API")
95
+ }
96
+ - test/main_test.go:
97
+ content: |
98
+ package main
99
+
100
+ import "testing"
101
+
102
+ func TestMain(t *testing.T) {
103
+ t.Log("Testing main")
104
+ }
@@ -0,0 +1,85 @@
1
+ files:
2
+ - .editorconfig:
3
+ content: |
4
+ # Editor configuration
5
+ root = true
6
+
7
+ [*]
8
+ indent_style = space
9
+ indent_size = 2
10
+ end_of_line = lf
11
+ charset = utf-8
12
+ trim_trailing_whitespace = true
13
+ insert_final_newline = true
14
+ - .env:
15
+ content: |
16
+ # Environment variables
17
+ - .env.example:
18
+ content: |
19
+ # Environment variables
20
+ - .gitignore:
21
+ content: |
22
+ # Ignore files generated by the app
23
+ .env
24
+ .venv
25
+ - LICENSE:
26
+ file: https://raw.githubusercontent.com/httpdss/structkit/main/LICENSE
27
+ - README.md:
28
+ content: |
29
+ # Generic App
30
+
31
+ ## Introduction
32
+
33
+ This is a generic app that can be used as a template for new projects.
34
+
35
+ ## Contribute
36
+
37
+ If you would like to contribute to this project, please follow the guidelines in the [CONTRIBUTING.md](.github/CONTRIBUTING.md) file.
38
+
39
+ ## License
40
+
41
+ This project is licensed under the terms of the [Apache 2.0](LICENSE) license.
42
+ - pom.xml:
43
+ content: |
44
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
45
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
46
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
47
+ <modelVersion>4.0.0</modelVersion>
48
+ <groupId>com.example</groupId>
49
+ <artifactId>project_name</artifactId>
50
+ <version>0.1.0</version>
51
+ <packaging>jar</packaging>
52
+ <name>project_name</name>
53
+ <description>A new Java project</description>
54
+ <properties>
55
+ <maven.compiler.source>1.8</maven.compiler.source>
56
+ <maven.compiler.target>1.8</maven.compiler.target>
57
+ </properties>
58
+ </project>
59
+ - src/main/java/com/example/App.java:
60
+ content: |
61
+ package com.example;
62
+
63
+ public class App {
64
+ public static void main(String[] args) {
65
+ System.out.println("Hello, World!");
66
+ }
67
+ }
68
+ - src/main/resources/REMOVE_ME.md:
69
+ content: |
70
+ # Resources
71
+
72
+ Resource files like configuration files
73
+ - src/test/java/com/example/AppTest.java:
74
+ content: |
75
+ package com.example;
76
+
77
+ import org.junit.Test;
78
+ import static org.junit.Assert.*;
79
+
80
+ public class AppTest {
81
+ @Test
82
+ public void testApp() {
83
+ assertTrue(true);
84
+ }
85
+ }
@@ -0,0 +1,100 @@
1
+ files:
2
+ - .gitignore:
3
+ content: |
4
+ # Ignore env files
5
+ .env
6
+ - .env:
7
+ content: |
8
+ # DOMAIN_NAME and SUBDOMAIN together determine where n8n will be reachable from
9
+ # The top level domain to serve from
10
+ DOMAIN_NAME={{@ n8n_domain_name @}}
11
+
12
+ # The subdomain to serve from
13
+ SUBDOMAIN={{@ n8n_subdomain @}}
14
+
15
+ # The above example serve n8n at: https://{{@ n8n_subdomain @}}.{{@ n8n_domain_name @}}
16
+
17
+ # Optional timezone to set which gets used by Cron and other scheduling nodes
18
+ # New York is the default value if not set
19
+ GENERIC_TIMEZONE={{@ n8n_generic_timezone @}}
20
+
21
+ # The email address to use for the TLS/SSL certificate creation
22
+ SSL_EMAIL={{@ n8n_ssl_email @}}
23
+ - local-files/.gitkeep:
24
+ content: |
25
+ # Keep this file to ensure the local-files directory is included in version control
26
+ - docker-compose.yaml:
27
+ content: |
28
+ services:
29
+ traefik:
30
+ image: "traefik"
31
+ restart: always
32
+ command:
33
+ - "--api.insecure=true"
34
+ - "--providers.docker=true"
35
+ - "--providers.docker.exposedbydefault=false"
36
+ - "--entrypoints.web.address=:80"
37
+ - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
38
+ - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
39
+ - "--entrypoints.websecure.address=:443"
40
+ - "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
41
+ - "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
42
+ - "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
43
+ ports:
44
+ - "80:80"
45
+ - "443:443"
46
+ volumes:
47
+ - traefik_data:/letsencrypt
48
+ - /var/run/docker.sock:/var/run/docker.sock:ro
49
+
50
+ n8n:
51
+ image: docker.n8n.io/n8nio/n8n
52
+ restart: always
53
+ ports:
54
+ - "127.0.0.1:5678:5678"
55
+ labels:
56
+ - traefik.enable=true
57
+ - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
58
+ - traefik.http.routers.n8n.tls=true
59
+ - traefik.http.routers.n8n.entrypoints=web,websecure
60
+ - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
61
+ - traefik.http.middlewares.n8n.headers.SSLRedirect=true
62
+ - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
63
+ - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
64
+ - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
65
+ - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
66
+ - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
67
+ - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
68
+ - traefik.http.middlewares.n8n.headers.STSPreload=true
69
+ - traefik.http.routers.n8n.middlewares=n8n@docker
70
+ environment:
71
+ - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
72
+ - N8N_PORT=5678
73
+ - N8N_PROTOCOL=https
74
+ - NODE_ENV=production
75
+ - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
76
+ - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
77
+ volumes:
78
+ - n8n_data:/home/node/.n8n
79
+ - ./local-files:/files
80
+
81
+ volumes:
82
+ n8n_data:
83
+ traefik_data:
84
+
85
+ variables:
86
+ - n8n_domain_name:
87
+ description: "The top level domain to serve n8n from"
88
+ type: string
89
+ default: "localtest.me"
90
+ - n8n_subdomain:
91
+ description: "The subdomain to serve n8n from"
92
+ type: string
93
+ default: "n8n"
94
+ - n8n_generic_timezone:
95
+ description: "The timezone to set for n8n, used by Cron and scheduling nodes"
96
+ type: string
97
+ default: "America/New_York"
98
+ - n8n_ssl_email:
99
+ description: "The email address to use for TLS/SSL certificate creation"
100
+ type: string
@@ -0,0 +1,101 @@
1
+ files:
2
+ - .editorconfig:
3
+ content: |
4
+ # Editor configuration
5
+ root = true
6
+
7
+ [*]
8
+ indent_style = space
9
+ indent_size = 2
10
+ end_of_line = lf
11
+ charset = utf-8
12
+ trim_trailing_whitespace = true
13
+ insert_final_newline = true
14
+ - .env:
15
+ content: |
16
+ # Environment variables
17
+ - .env.example:
18
+ content: |
19
+ # Environment variables
20
+ - .gitignore:
21
+ content: |
22
+ # Ignore files generated by the app
23
+ .env
24
+ .venv
25
+ - LICENSE:
26
+ file: https://raw.githubusercontent.com/httpdss/structkit/main/LICENSE
27
+ - README.md:
28
+ content: |
29
+ # Generic App
30
+
31
+ ## Introduction
32
+
33
+ This is a generic app that can be used as a template for new projects.
34
+
35
+ ## Contribute
36
+
37
+ If you would like to contribute to this project, please follow the guidelines in the [CONTRIBUTING.md](.github/CONTRIBUTING.md) file.
38
+
39
+ ## License
40
+
41
+ This project is licensed under the terms of the [Apache 2.0](LICENSE) license.
42
+ - package.json:
43
+ content: |
44
+ {
45
+ "name": "project_name",
46
+ "version": "0.1.0",
47
+ "description": "A new Node.js project",
48
+ "main": "index.js",
49
+ "scripts": {
50
+ "test": "echo \"Error: no test specified\" && exit 1"
51
+ },
52
+ "keywords": [],
53
+ "author": "",
54
+ "license": "Apache-2.0",
55
+ "dependencies": {},
56
+ "devDependencies": {}
57
+ }
58
+ - test/index.test.js:
59
+ content: |
60
+ const assert = require('assert');
61
+
62
+ describe('Array', function() {
63
+ describe('#indexOf()', function() {
64
+ it('should return -1 when the value is not present', function() {
65
+ assert.strictEqual([1, 2, 3].indexOf(4), -1);
66
+ });
67
+ });
68
+ });
69
+ - src/index.js:
70
+ content: |
71
+ console.log('Hello, World!');
72
+ - src/utils.js:
73
+ content: |
74
+ function add(a, b) {
75
+ return a + b;
76
+ }
77
+
78
+ function sub(a, b) {
79
+ return a - b;
80
+ }
81
+
82
+ module.exports = { add, sub };
83
+ - public/index.html:
84
+ content: |
85
+ <!DOCTYPE html>
86
+ <html lang="en">
87
+ <head>
88
+ <meta charset="UTF-8">
89
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
90
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
91
+ <title>Document</title>
92
+ </head>
93
+ <body>
94
+ <h1>Hello, World!</h1>
95
+ </body>
96
+ </html>
97
+ - public/styles.css:
98
+ content: |
99
+ body {
100
+ font-family: Arial, sans-serif;
101
+ }