@tonk/cli 0.0.3 → 0.0.5
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.
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +19 -5
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/deploy.js +1 -1
- package/dist/scripts/aws/create-key.sh +20 -0
- package/dist/scripts/aws/ec2-dns.sh +20 -0
- package/dist/scripts/aws/provision.sh +93 -0
- package/package.json +5 -3
- package/scripts/aws/create-key.sh +20 -0
- package/scripts/aws/ec2-dns.sh +20 -0
- package/scripts/aws/provision.sh +93 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAOlC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAOlC,eAAO,MAAM,aAAa,SAmatB,CAAC"}
|
package/dist/commands/config.js
CHANGED
|
@@ -255,14 +255,18 @@ if ! command -v docker &> /dev/null; then
|
|
|
255
255
|
sudo usermod -aG docker ${options.user}
|
|
256
256
|
fi
|
|
257
257
|
|
|
258
|
-
# Install Nginx
|
|
259
|
-
sudo
|
|
258
|
+
# Install Nginx for Amazon Linux 2023
|
|
259
|
+
sudo dnf install -y nginx
|
|
260
|
+
|
|
261
|
+
# Create necessary directories
|
|
262
|
+
sudo mkdir -p /etc/nginx/conf.d
|
|
263
|
+
|
|
264
|
+
# Enable and start Nginx
|
|
260
265
|
sudo systemctl enable nginx
|
|
261
266
|
sudo systemctl start nginx
|
|
262
267
|
|
|
263
268
|
# Install Certbot for SSL certificates
|
|
264
|
-
sudo
|
|
265
|
-
sudo yum install certbot python-certbot-nginx -y
|
|
269
|
+
sudo dnf install -y certbot python3-certbot-nginx
|
|
266
270
|
|
|
267
271
|
# Create directory for Tonk app if it doesn't exist
|
|
268
272
|
mkdir -p ~/tonk-app
|
|
@@ -287,8 +291,18 @@ server {
|
|
|
287
291
|
}
|
|
288
292
|
EOL
|
|
289
293
|
|
|
290
|
-
# Move Nginx config to proper location
|
|
294
|
+
# Move Nginx config to proper location
|
|
291
295
|
sudo mv /tmp/tonk-app.conf /etc/nginx/conf.d/
|
|
296
|
+
|
|
297
|
+
# Make sure Nginx config is valid
|
|
298
|
+
echo "Testing Nginx configuration..."
|
|
299
|
+
sudo nginx -t || echo "Warning: Nginx configuration test failed, but continuing..."
|
|
300
|
+
|
|
301
|
+
# Set proper ownership for Amazon Linux 2023
|
|
302
|
+
sudo mkdir -p /var/log/nginx
|
|
303
|
+
sudo chown -R root:root /var/log/nginx
|
|
304
|
+
|
|
305
|
+
# Restart Nginx
|
|
292
306
|
sudo systemctl restart nginx
|
|
293
307
|
|
|
294
308
|
echo "Nginx configured as reverse proxy to port ${options.port || '8080'}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -96,7 +96,7 @@ You can provision a new EC2 instance with 'tonk config --provision' or configure
|
|
|
96
96
|
docker stop tonk-app-container || true &&
|
|
97
97
|
docker rm tonk-app-container || true &&
|
|
98
98
|
docker run -d --name tonk-app-container -p ${options.port}:8080 -e PORT=8080 tonk-app &&
|
|
99
|
-
sudo systemctl restart nginx
|
|
99
|
+
sudo systemctl restart nginx.service
|
|
100
100
|
'`;
|
|
101
101
|
execSync(sshCommand, { cwd: projectRoot, stdio: 'inherit' });
|
|
102
102
|
// 6. Clean up
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script creates an AWS EC2 key pair and saves it to a file
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <key-name> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
KEY_NAME=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Create the key pair and save it to a file
|
|
15
|
+
aws ec2 create-key-pair ${PROFILE_OPTION} ${REGION_OPTION} --key-name ${KEY_NAME} --query 'KeyMaterial' --output text > ${KEY_NAME}.pem
|
|
16
|
+
|
|
17
|
+
# Set appropriate permissions for the key file
|
|
18
|
+
chmod 400 ${KEY_NAME}.pem
|
|
19
|
+
|
|
20
|
+
echo "Key pair ${KEY_NAME} created and saved."
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script retrieves the public DNS name of an EC2 instance
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <instance-id> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
INSTANCE_ID=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Get the public DNS name of the instance
|
|
15
|
+
PUBLIC_DNS=$(aws ec2 describe-instances ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
16
|
+
--instance-ids ${INSTANCE_ID} \
|
|
17
|
+
--query 'Reservations[0].Instances[0].PublicDnsName' \
|
|
18
|
+
--output text)
|
|
19
|
+
|
|
20
|
+
echo ${PUBLIC_DNS}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script provisions an EC2 instance using a key pair
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <key-name> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
KEY_NAME=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Extract region from the region option (simpler method)
|
|
15
|
+
REGION=$(echo ${REGION_OPTION} | sed -n 's/.*--region \([a-z0-9-]*\).*/\1/p')
|
|
16
|
+
|
|
17
|
+
# If region is not found in the option, use default
|
|
18
|
+
if [ -z "$REGION" ]; then
|
|
19
|
+
# Try to get the default region
|
|
20
|
+
REGION=$(aws configure get region ${PROFILE_OPTION})
|
|
21
|
+
|
|
22
|
+
# If still no region, use us-east-1 as fallback
|
|
23
|
+
if [ -z "$REGION" ]; then
|
|
24
|
+
REGION="us-east-1"
|
|
25
|
+
fi
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
echo "Using AWS region: ${REGION}"
|
|
29
|
+
|
|
30
|
+
# Query for the latest Amazon Linux 2023 AMI for the current region
|
|
31
|
+
echo "Querying for latest Amazon Linux 2023 AMI in region ${REGION}..."
|
|
32
|
+
AMI_ID=$(aws ec2 describe-images ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
33
|
+
--owners amazon \
|
|
34
|
+
--filters "Name=name,Values=al2023-ami-2023.*-x86_64" "Name=state,Values=available" \
|
|
35
|
+
--query "sort_by(Images, &CreationDate)[-1].ImageId" \
|
|
36
|
+
--output text)
|
|
37
|
+
|
|
38
|
+
# If we couldn't get an AMI ID, exit with error
|
|
39
|
+
if [ -z "$AMI_ID" ] || [ "$AMI_ID" == "None" ]; then
|
|
40
|
+
echo "ERROR: Unable to find a valid Amazon Linux 2023 AMI for region ${REGION}"
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo "Using AMI ID: ${AMI_ID}"
|
|
45
|
+
|
|
46
|
+
# For eu-north-1 region, use t3.micro as t2.micro is not supported
|
|
47
|
+
INSTANCE_TYPE="t2.micro"
|
|
48
|
+
if [ "$REGION" = "eu-north-1" ]; then
|
|
49
|
+
INSTANCE_TYPE="t3.micro"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
echo "Using instance type: ${INSTANCE_TYPE}"
|
|
53
|
+
|
|
54
|
+
# Create a custom security group
|
|
55
|
+
SECURITY_GROUP_NAME="tonk-security-group-$(date +%s)"
|
|
56
|
+
echo "Creating security group: ${SECURITY_GROUP_NAME}"
|
|
57
|
+
|
|
58
|
+
SECURITY_GROUP_ID=$(aws ec2 create-security-group ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
59
|
+
--group-name ${SECURITY_GROUP_NAME} \
|
|
60
|
+
--description "Security group for Tonk" \
|
|
61
|
+
--query 'GroupId' \
|
|
62
|
+
--output text)
|
|
63
|
+
|
|
64
|
+
echo "Security group created with ID: ${SECURITY_GROUP_ID}"
|
|
65
|
+
|
|
66
|
+
# Add SSH access rule to the security group
|
|
67
|
+
aws ec2 authorize-security-group-ingress ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
68
|
+
--group-id ${SECURITY_GROUP_ID} \
|
|
69
|
+
--protocol tcp \
|
|
70
|
+
--port 22 \
|
|
71
|
+
--cidr 0.0.0.0/0
|
|
72
|
+
|
|
73
|
+
echo "Added SSH access rule to security group"
|
|
74
|
+
|
|
75
|
+
# Add HTTPS access rule to the security group
|
|
76
|
+
aws ec2 authorize-security-group-ingress ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
77
|
+
--group-id ${SECURITY_GROUP_ID} \
|
|
78
|
+
--protocol tcp \
|
|
79
|
+
--port 443 \
|
|
80
|
+
--cidr 0.0.0.0/0
|
|
81
|
+
|
|
82
|
+
echo "Added HTTPS access rule to security group"
|
|
83
|
+
|
|
84
|
+
# Launch an EC2 instance with Amazon Linux 2023 AMI and the new security group
|
|
85
|
+
INSTANCE_ID=$(aws ec2 run-instances ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
86
|
+
--image-id ${AMI_ID} \
|
|
87
|
+
--instance-type ${INSTANCE_TYPE} \
|
|
88
|
+
--key-name ${KEY_NAME} \
|
|
89
|
+
--security-group-ids ${SECURITY_GROUP_ID} \
|
|
90
|
+
--query 'Instances[0].InstanceId' \
|
|
91
|
+
--output text)
|
|
92
|
+
|
|
93
|
+
echo "Instance launched with ID: ${INSTANCE_ID}"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonk/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "The Tonk stack command line utility",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
20
|
"bin",
|
|
21
|
-
"dist"
|
|
21
|
+
"dist",
|
|
22
|
+
"scripts"
|
|
22
23
|
],
|
|
23
24
|
"scripts": {
|
|
24
|
-
"build": "tsup && chmod +x ./dist/tonk.js",
|
|
25
|
+
"build": "tsup && chmod +x ./dist/tonk.js && npm run copy-scripts",
|
|
26
|
+
"copy-scripts": "mkdir -p ./dist/scripts && cp -r ./scripts/* ./dist/scripts/",
|
|
25
27
|
"dev": "tsup --watch",
|
|
26
28
|
"clean": "gts clean",
|
|
27
29
|
"lint": "gts lint",
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script creates an AWS EC2 key pair and saves it to a file
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <key-name> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
KEY_NAME=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Create the key pair and save it to a file
|
|
15
|
+
aws ec2 create-key-pair ${PROFILE_OPTION} ${REGION_OPTION} --key-name ${KEY_NAME} --query 'KeyMaterial' --output text > ${KEY_NAME}.pem
|
|
16
|
+
|
|
17
|
+
# Set appropriate permissions for the key file
|
|
18
|
+
chmod 400 ${KEY_NAME}.pem
|
|
19
|
+
|
|
20
|
+
echo "Key pair ${KEY_NAME} created and saved."
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script retrieves the public DNS name of an EC2 instance
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <instance-id> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
INSTANCE_ID=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Get the public DNS name of the instance
|
|
15
|
+
PUBLIC_DNS=$(aws ec2 describe-instances ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
16
|
+
--instance-ids ${INSTANCE_ID} \
|
|
17
|
+
--query 'Reservations[0].Instances[0].PublicDnsName' \
|
|
18
|
+
--output text)
|
|
19
|
+
|
|
20
|
+
echo ${PUBLIC_DNS}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# This script provisions an EC2 instance using a key pair
|
|
4
|
+
|
|
5
|
+
if [ $# -lt 1 ]; then
|
|
6
|
+
echo "Usage: $0 <key-name> [aws-profile-option] [aws-region-option]"
|
|
7
|
+
exit 1
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
KEY_NAME=$1
|
|
11
|
+
PROFILE_OPTION=$2
|
|
12
|
+
REGION_OPTION=$3
|
|
13
|
+
|
|
14
|
+
# Extract region from the region option (simpler method)
|
|
15
|
+
REGION=$(echo ${REGION_OPTION} | sed -n 's/.*--region \([a-z0-9-]*\).*/\1/p')
|
|
16
|
+
|
|
17
|
+
# If region is not found in the option, use default
|
|
18
|
+
if [ -z "$REGION" ]; then
|
|
19
|
+
# Try to get the default region
|
|
20
|
+
REGION=$(aws configure get region ${PROFILE_OPTION})
|
|
21
|
+
|
|
22
|
+
# If still no region, use us-east-1 as fallback
|
|
23
|
+
if [ -z "$REGION" ]; then
|
|
24
|
+
REGION="us-east-1"
|
|
25
|
+
fi
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
echo "Using AWS region: ${REGION}"
|
|
29
|
+
|
|
30
|
+
# Query for the latest Amazon Linux 2023 AMI for the current region
|
|
31
|
+
echo "Querying for latest Amazon Linux 2023 AMI in region ${REGION}..."
|
|
32
|
+
AMI_ID=$(aws ec2 describe-images ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
33
|
+
--owners amazon \
|
|
34
|
+
--filters "Name=name,Values=al2023-ami-2023.*-x86_64" "Name=state,Values=available" \
|
|
35
|
+
--query "sort_by(Images, &CreationDate)[-1].ImageId" \
|
|
36
|
+
--output text)
|
|
37
|
+
|
|
38
|
+
# If we couldn't get an AMI ID, exit with error
|
|
39
|
+
if [ -z "$AMI_ID" ] || [ "$AMI_ID" == "None" ]; then
|
|
40
|
+
echo "ERROR: Unable to find a valid Amazon Linux 2023 AMI for region ${REGION}"
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo "Using AMI ID: ${AMI_ID}"
|
|
45
|
+
|
|
46
|
+
# For eu-north-1 region, use t3.micro as t2.micro is not supported
|
|
47
|
+
INSTANCE_TYPE="t2.micro"
|
|
48
|
+
if [ "$REGION" = "eu-north-1" ]; then
|
|
49
|
+
INSTANCE_TYPE="t3.micro"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
echo "Using instance type: ${INSTANCE_TYPE}"
|
|
53
|
+
|
|
54
|
+
# Create a custom security group
|
|
55
|
+
SECURITY_GROUP_NAME="tonk-security-group-$(date +%s)"
|
|
56
|
+
echo "Creating security group: ${SECURITY_GROUP_NAME}"
|
|
57
|
+
|
|
58
|
+
SECURITY_GROUP_ID=$(aws ec2 create-security-group ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
59
|
+
--group-name ${SECURITY_GROUP_NAME} \
|
|
60
|
+
--description "Security group for Tonk" \
|
|
61
|
+
--query 'GroupId' \
|
|
62
|
+
--output text)
|
|
63
|
+
|
|
64
|
+
echo "Security group created with ID: ${SECURITY_GROUP_ID}"
|
|
65
|
+
|
|
66
|
+
# Add SSH access rule to the security group
|
|
67
|
+
aws ec2 authorize-security-group-ingress ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
68
|
+
--group-id ${SECURITY_GROUP_ID} \
|
|
69
|
+
--protocol tcp \
|
|
70
|
+
--port 22 \
|
|
71
|
+
--cidr 0.0.0.0/0
|
|
72
|
+
|
|
73
|
+
echo "Added SSH access rule to security group"
|
|
74
|
+
|
|
75
|
+
# Add HTTPS access rule to the security group
|
|
76
|
+
aws ec2 authorize-security-group-ingress ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
77
|
+
--group-id ${SECURITY_GROUP_ID} \
|
|
78
|
+
--protocol tcp \
|
|
79
|
+
--port 443 \
|
|
80
|
+
--cidr 0.0.0.0/0
|
|
81
|
+
|
|
82
|
+
echo "Added HTTPS access rule to security group"
|
|
83
|
+
|
|
84
|
+
# Launch an EC2 instance with Amazon Linux 2023 AMI and the new security group
|
|
85
|
+
INSTANCE_ID=$(aws ec2 run-instances ${PROFILE_OPTION} ${REGION_OPTION} \
|
|
86
|
+
--image-id ${AMI_ID} \
|
|
87
|
+
--instance-type ${INSTANCE_TYPE} \
|
|
88
|
+
--key-name ${KEY_NAME} \
|
|
89
|
+
--security-group-ids ${SECURITY_GROUP_ID} \
|
|
90
|
+
--query 'Instances[0].InstanceId' \
|
|
91
|
+
--output text)
|
|
92
|
+
|
|
93
|
+
echo "Instance launched with ID: ${INSTANCE_ID}"
|