Skip to content

Commit 193214a

Browse files
provider handoff service
1 parent 08ebf95 commit 193214a

6 files changed

Lines changed: 609 additions & 0 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Use nginx as the base image
2+
FROM nginx:stable
3+
4+
# Set working directory to /app
5+
WORKDIR /app
6+
7+
# Copy project files to nginx directory
8+
COPY . /usr/share/nginx/html
9+
10+
# Set correct permissions for the project files
11+
RUN chmod -R 755 /usr/share/nginx/html && chown -R nginx:nginx /usr/share/nginx/html
12+
13+
# Copy the config file to nginx directory
14+
COPY nginx.conf /etc/nginx/nginx.conf
15+
16+
# Expose the port your app runs on
17+
EXPOSE 8080
18+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
services:
2+
app:
3+
restart: unless-stopped
4+
build:
5+
context: .
6+
dockerfile: Dockerfile
7+
ports:
8+
- target: 8080
9+
published: 8080
10+
mode: ingress
11+
deploy:
12+
resources:
13+
reservations:
14+
memory: 256M
15+
healthcheck:
16+
test:
17+
- CMD
18+
- curl
19+
- -f
20+
- http://localhost:8080/
21+
interval: 30s
22+
timeout: 10s
23+
retries: 3
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>AWS Provider Setup</title>
7+
<link rel="stylesheet" href="main.css" />
8+
</head>
9+
<body>
10+
<div class="container">
11+
<nav class="progress">
12+
<div class="progress-step" data-step="1">
13+
<div class="progress-dot">1</div>
14+
<span class="progress-label">Intro</span>
15+
</div>
16+
<div class="progress-line"></div>
17+
<div class="progress-step" data-step="2">
18+
<div class="progress-dot">2</div>
19+
<span class="progress-label">Configure</span>
20+
</div>
21+
<div class="progress-line"></div>
22+
<div class="progress-step" data-step="3">
23+
<div class="progress-dot">3</div>
24+
<span class="progress-label">Launch</span>
25+
</div>
26+
<div class="progress-line"></div>
27+
<div class="progress-step" data-step="4">
28+
<div class="progress-dot">4</div>
29+
<span class="progress-label">Confirm</span>
30+
</div>
31+
</nav>
32+
33+
<p id="error" class="error" hidden></p>
34+
35+
<!-- Step 1: Intro -->
36+
<div id="step-1" class="step-panel">
37+
<h1>AWS Provider Setup</h1>
38+
<p>
39+
This wizard will connect your AWS account to Defang by creating a
40+
CloudFormation stack that sets up the required IAM roles for CI/CD.
41+
</p>
42+
<p>Before you begin, make sure you have:</p>
43+
<ul>
44+
<li>Your 12-digit AWS Account ID</li>
45+
<li>Access to the AWS region where you want to deploy</li>
46+
<li>Permission to create CloudFormation stacks and IAM roles</li>
47+
</ul>
48+
</div>
49+
50+
<!-- Step 2: Configure -->
51+
<div id="step-2" class="step-panel" hidden>
52+
<h1>Configure AWS</h1>
53+
<form id="provider-form" novalidate>
54+
<div class="field">
55+
<label for="account-id">AWS Account ID</label>
56+
<input
57+
type="text"
58+
id="account-id"
59+
name="accountId"
60+
placeholder="123456789012"
61+
required
62+
/>
63+
</div>
64+
<div class="field">
65+
<label for="region">AWS Region</label>
66+
<select id="region" name="region" required>
67+
<option value="us-east-1">US East 1 (N. Virginia)</option>
68+
<option value="us-east-2" selected>US East 2 (Ohio)</option>
69+
<option value="us-west-1">US West 1 (N. California)</option>
70+
<option value="us-west-2">US West 2 (Oregon)</option>
71+
<option value="eu-west-1">EU West 1 (Ireland)</option>
72+
<option value="eu-west-2">EU West 2 (London)</option>
73+
<option value="eu-west-3">EU West 3 (Paris)</option>
74+
<option value="eu-central-1">EU Central 1 (Frankfurt)</option>
75+
<option value="ap-northeast-1">AP Northeast 1 (Tokyo)</option>
76+
<option value="ap-northeast-2">AP Northeast 2 (Seoul)</option>
77+
<option value="ap-southeast-1">AP Southeast 1 (Singapore)</option>
78+
<option value="ap-southeast-2">AP Southeast 2 (Sydney)</option>
79+
<option value="ap-south-1">AP South 1 (Mumbai)</option>
80+
<option value="ca-central-1">CA Central 1 (Central)</option>
81+
<option value="sa-east-1">SA East 1 (São Paulo)</option>
82+
</select>
83+
</div>
84+
</form>
85+
</div>
86+
87+
<!-- Step 3: Confirm -->
88+
<div id="step-3" class="step-panel" hidden>
89+
<h2>Create CloudFormation Stack</h2>
90+
91+
<p>
92+
To allow GitHub Actions to securely deploy to your AWS account, you
93+
need to create an OIDC provider and an IAM role in your AWS account.
94+
</p>
95+
96+
<p>
97+
The easiest way to set this up is to deploy a CloudFormation stack,
98+
which will create the necessary resources for you.
99+
</p>
100+
101+
<h3>Next Steps</h3>
102+
103+
<ol>
104+
<li>
105+
Clicking the "Launch" button below will open the the AWS console in
106+
a new tab
107+
</li>
108+
<li>
109+
Scroll to the bottom, check the "I acknowledge that AWS
110+
CloudFormation might create IAM resources" checkbox
111+
</li>
112+
<li>Click "Create stack" to deploy the CloudFormation stack</li>
113+
<li>Come back to this tab for the final step</li>
114+
</ol>
115+
</div>
116+
117+
<!-- Step 5: Success -->
118+
<div id="step-5" class="step-panel" hidden>
119+
<h2>You're all set!</h2>
120+
<p>Your AWS account has been successfully connected to Defang. You can now close this window.</p>
121+
</div>
122+
123+
<!-- Step 4: Launched -->
124+
<div id="step-4" class="step-panel" hidden>
125+
<h2>Complete Setup in AWS</h2>
126+
<p>The AWS CloudFormation console has been opened in a new tab.</p>
127+
<p>
128+
If the tab didn't open, your browser may have blocked the popup.
129+
<a id="cf-link" href="#" target="_blank">Click here to open it.</a>
130+
</p>
131+
<h3>Confirm</h3>
132+
<ol>
133+
<li>Opened the CloudFormation template in the AWS console</li>
134+
<li>
135+
Checked the "I acknowledge that AWS CloudFormation might create IAM
136+
resources" checkbox
137+
</li>
138+
<li>Clicked "Create stack" to deploy the CloudFormation stack</li>
139+
</ol>
140+
<p>
141+
After you've created the CloudFormation stack, click the "Confirm"
142+
button below to complete the setup process.
143+
</p>
144+
<p id="confirm-error" class="error" hidden></p>
145+
</div>
146+
147+
<div class="actions">
148+
<button id="btn-back" type="button" class="btn-secondary" hidden>
149+
Back
150+
</button>
151+
<button id="btn-next" type="button">Next</button>
152+
</div>
153+
</div>
154+
<script src="main.js"></script>
155+
</body>
156+
</html>

0 commit comments

Comments
 (0)