Skip to content

Commit 90026cb

Browse files
committed
create original
1 parent 7d11b5b commit 90026cb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+12507
-9
lines changed

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
**/.venv
2+
.venv/
3+
.venv
4+
registry/.venv/
5+
servers/*/.venv/

.env.docker.template

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Admin credentials
2+
ADMIN_USER=admin
3+
ADMIN_PASSWORD=your_secure_password_here
4+
5+
# API Keys
6+
POLYGON_API_KEY=your_polygon_api_key_here
7+
8+
# AWS Configuration
9+
AWS_REGION=us-east-1
10+
11+
# Secret Key (will be auto-generated if not provided)
12+
# SECRET_KEY=your_secret_key_here

.gitignore

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# Models
7+
.models/
8+
9+
# C extensions
10+
*.so
11+
12+
# Distribution / packaging
13+
.Python
14+
build/
15+
develop-eggs/
16+
dist/
17+
downloads/
18+
eggs/
19+
.eggs/
20+
lib/
21+
lib64/
22+
parts/
23+
sdist/
24+
var/
25+
wheels/
26+
share/python-wheels/
27+
*.egg-info/
28+
.installed.cfg
29+
*.egg
30+
MANIFEST
31+
32+
# PyInstaller
33+
# Usually these files are written by a python script from a template
34+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
35+
*.manifest
36+
*.spec
37+
38+
# Installer logs
39+
pip-log.txt
40+
pip-delete-this-directory.txt
41+
42+
# Unit test / coverage reports
43+
htmlcov/
44+
.tox/
45+
.nox/
46+
.coverage
47+
.coverage.*
48+
.cache
49+
nosetests.xml
50+
coverage.xml
51+
*.cover
52+
*.py,cover
53+
.hypothesis/
54+
.pytest_cache/
55+
cover/
56+
57+
# Translations
58+
*.mo
59+
*.pot
60+
61+
# Django stuff:
62+
*.log
63+
local_settings.py
64+
db.sqlite3
65+
db.sqlite3-journal
66+
67+
# Flask stuff:
68+
instance/
69+
.webassets-cache
70+
71+
# Scrapy stuff:
72+
.scrapy
73+
74+
# Sphinx documentation
75+
docs/_build/
76+
77+
# PyBuilder
78+
.pybuilder/
79+
target/
80+
81+
# Jupyter Notebook
82+
.ipynb_checkpoints
83+
84+
# IPython
85+
profile_default/
86+
ipython_config.py
87+
88+
# pyenv
89+
# For a library or package, you might want to ignore these files since the code is
90+
# intended to run in multiple environments; otherwise, check them in:
91+
# .python-version
92+
93+
# pipenv
94+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
95+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
96+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
97+
# install all needed dependencies.
98+
#Pipfile.lock
99+
100+
# UV
101+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
102+
# This is especially recommended for binary packages to ensure reproducibility, and is more
103+
# commonly ignored for libraries.
104+
#uv.lock
105+
106+
# poetry
107+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
108+
# This is especially recommended for binary packages to ensure reproducibility, and is more
109+
# commonly ignored for libraries.
110+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
111+
#poetry.lock
112+
113+
# pdm
114+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
115+
#pdm.lock
116+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
117+
# in version control.
118+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
119+
.pdm.toml
120+
.pdm-python
121+
.pdm-build/
122+
123+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
124+
__pypackages__/
125+
126+
# Celery stuff
127+
celerybeat-schedule
128+
celerybeat.pid
129+
130+
# SageMath parsed files
131+
*.sage.py
132+
133+
# Environments
134+
.env
135+
.env.docker
136+
.venv
137+
env/
138+
venv/
139+
ENV/
140+
env.bak/
141+
venv.bak/
142+
143+
# Spyder project settings
144+
.spyderproject
145+
.spyproject
146+
147+
# Rope project settings
148+
.ropeproject
149+
150+
# mkdocs documentation
151+
/site
152+
153+
# mypy
154+
.mypy_cache/
155+
.dmypy.json
156+
dmypy.json
157+
158+
# Pyre type checker
159+
.pyre/
160+
161+
# pytype static type analyzer
162+
.pytype/
163+
164+
# Cython debug symbols
165+
cython_debug/
166+
167+
# PyCharm
168+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
169+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
170+
# and can be added to the global gitignore or merged into this file. For a more nuclear
171+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
172+
#.idea/
173+
174+
# Ruff stuff:
175+
.ruff_cache/
176+
.cache/
177+
178+
# PyPI configuration file
179+
.pypirc
180+
cookies.txt
181+
182+
# MCP Gateway specific
183+
registry/server_state.json
184+
registry/nginx_mcp_revproxy.conf
185+
logs/
186+
187+
# Agent testing
188+
agents/test_results/

Dockerfile

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Use an official Python runtime as a parent image
2+
FROM python:3.12-slim
3+
4+
# Set environment variables to prevent interactive prompts during installation
5+
ENV PYTHONUNBUFFERED=1 \
6+
DEBIAN_FRONTEND=noninteractive
7+
8+
# Install minimal system dependencies needed for the container to function
9+
# All Python-related setup moved to entrypoint.sh for a more lightweight image
10+
RUN apt-get update && apt-get install -y --no-install-recommends \
11+
nginx \
12+
curl \
13+
procps \
14+
openssl \
15+
git \
16+
build-essential \
17+
sudo \
18+
&& apt-get clean \
19+
&& rm -rf /var/lib/apt/lists/*
20+
21+
# Set the working directory in the container
22+
WORKDIR /app
23+
24+
# Copy the application code
25+
COPY . /app/
26+
27+
# Copy the custom Nginx configuration (will be moved by entrypoint)
28+
# Note: We copy it here so it's part of the image layer
29+
COPY docker/nginx_rev_proxy.conf /app/docker/nginx_rev_proxy.conf
30+
31+
32+
# Make the entrypoint script executable
33+
COPY docker/entrypoint.sh /app/docker/entrypoint.sh
34+
RUN chmod +x /app/docker/entrypoint.sh
35+
36+
# Expose ports for Nginx (HTTP/HTTPS) and the Registry (direct access, though usually proxied)
37+
EXPOSE 80 443 7860
38+
39+
# Define environment variables for registry/server configuration (can be overridden at runtime)
40+
# Provide sensible defaults or leave empty if they should be explicitly set
41+
ARG SECRET_KEY=""
42+
ARG ADMIN_USER="admin"
43+
ARG ADMIN_PASSWORD=""
44+
ARG POLYGON_API_KEY=""
45+
46+
ENV SECRET_KEY=$SECRET_KEY
47+
ENV ADMIN_USER=$ADMIN_USER
48+
ENV ADMIN_PASSWORD=$ADMIN_PASSWORD
49+
ENV POLYGON_API_KEY=$POLYGON_API_KEY
50+
51+
# Run the entrypoint script when the container launches
52+
ENTRYPOINT ["/app/docker/entrypoint.sh"]

NOTICE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
Q2 2025 Contributions Copyright Dheeraj Oruganty under MIT License.

0 commit comments

Comments
 (0)