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.
- structkit/__init__.py +6 -0
- structkit/commands/__init__.py +17 -0
- structkit/commands/completion.py +65 -0
- structkit/commands/generate.py +397 -0
- structkit/commands/generate_schema.py +67 -0
- structkit/commands/import.py +63 -0
- structkit/commands/info.py +87 -0
- structkit/commands/init.py +52 -0
- structkit/commands/list.py +89 -0
- structkit/commands/mcp.py +100 -0
- structkit/commands/validate.py +129 -0
- structkit/completers.py +54 -0
- structkit/content_fetcher.py +249 -0
- structkit/contribs/README.md +271 -0
- structkit/contribs/ansible-playbook.yaml +38 -0
- structkit/contribs/chef-cookbook.yaml +51 -0
- structkit/contribs/ci-cd-pipelines.yaml +67 -0
- structkit/contribs/cloudformation-files.yaml +21 -0
- structkit/contribs/configs/chglog.yaml +31 -0
- structkit/contribs/configs/codeowners.yaml +3 -0
- structkit/contribs/configs/devcontainer.yaml +35 -0
- structkit/contribs/configs/editor-config.yaml +11 -0
- structkit/contribs/configs/eslint.yaml +30 -0
- structkit/contribs/configs/jshint.yaml +11 -0
- structkit/contribs/configs/kubectl.yaml +23 -0
- structkit/contribs/configs/prettier.yaml +19 -0
- structkit/contribs/docker-files.yaml +27 -0
- structkit/contribs/documentation-template.yaml +33 -0
- structkit/contribs/git-hooks.yaml +19 -0
- structkit/contribs/github/chatmodes/plan.yaml +18 -0
- structkit/contribs/github/instructions/generic.yaml +5 -0
- structkit/contribs/github/prompts/generic.yaml +4 -0
- structkit/contribs/github/prompts/react-form.yaml +17 -0
- structkit/contribs/github/prompts/security-api.yaml +8 -0
- structkit/contribs/github/prompts/struct.yaml +90 -0
- structkit/contribs/github/templates.yaml +91 -0
- structkit/contribs/github/workflows/codeql.yaml +88 -0
- structkit/contribs/github/workflows/execute-tf-workflow.yaml +39 -0
- structkit/contribs/github/workflows/labeler.yaml +77 -0
- structkit/contribs/github/workflows/pre-commit.yaml +27 -0
- structkit/contribs/github/workflows/release-drafter.yaml +77 -0
- structkit/contribs/github/workflows/run-struct.yaml +30 -0
- structkit/contribs/github/workflows/stale.yaml +16 -0
- structkit/contribs/helm-chart.yaml +160 -0
- structkit/contribs/kubernetes-manifests.yaml +103 -0
- structkit/contribs/project/custom-structures.yaml +24 -0
- structkit/contribs/project/generic.yaml +309 -0
- structkit/contribs/project/go.yaml +104 -0
- structkit/contribs/project/java.yaml +85 -0
- structkit/contribs/project/n8n.yaml +100 -0
- structkit/contribs/project/nodejs.yaml +101 -0
- structkit/contribs/project/python.yaml +136 -0
- structkit/contribs/project/ruby.yaml +130 -0
- structkit/contribs/project/rust.yaml +106 -0
- structkit/contribs/prompts/run-struct-trigger.yaml +18 -0
- structkit/contribs/terraform/apps/aws-accounts.yaml +21 -0
- structkit/contribs/terraform/apps/environments.yaml +41 -0
- structkit/contribs/terraform/apps/generic.yaml +41 -0
- structkit/contribs/terraform/apps/github-organization.yaml +40 -0
- structkit/contribs/terraform/apps/init.yaml +11 -0
- structkit/contribs/terraform/modules/generic.yaml +58 -0
- structkit/contribs/vagrant-files.yaml +21 -0
- structkit/file_item.py +182 -0
- structkit/filters.py +112 -0
- structkit/input_store.py +35 -0
- structkit/logging_config.py +36 -0
- structkit/main.py +85 -0
- structkit/mcp_server.py +347 -0
- structkit/model_wrapper.py +47 -0
- structkit/template_renderer.py +258 -0
- structkit/utils.py +36 -0
- structkit-3.0.0.dist-info/METADATA +182 -0
- structkit-3.0.0.dist-info/RECORD +77 -0
- structkit-3.0.0.dist-info/WHEEL +5 -0
- structkit-3.0.0.dist-info/entry_points.txt +2 -0
- structkit-3.0.0.dist-info/licenses/LICENSE +201 -0
- 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
|
+
}
|