Moved repo url and email for letsencrypt to env variables
All checks were successful
AWS Deploy on Push / build (push) Successful in 4m15s
All checks were successful
AWS Deploy on Push / build (push) Successful in 4m15s
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
FREEDNS_User=MyFreeDNSUsername
|
||||
FREEDNS_Password=MyFreeDNSPassword
|
||||
DOMAIN_NAME=mydomain.com
|
||||
SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EMYPUBLICKEY7+"
|
||||
SSH_PUBLIC_KEY="ssh-rsa AAAAB3NzaC1yc2EMYPUBLICKEY7+"
|
||||
REPO_URL="https://git.example.com/user/repo.git"
|
||||
LETSENCRYPT_EMAIL="admin@example.com"
|
||||
@@ -44,6 +44,8 @@ jobs:
|
||||
FREEDNS_Password: ${{ secrets.FREEDNS_PASSWORD }}
|
||||
DOMAIN_NAME: ${{ secrets.DOMAIN_NAME }}
|
||||
SSH_PUBLIC_KEY: ${{ secrets.SSH_PUBLIC_KEY }}
|
||||
REPO_URL: ${{ secrets.REPO_URL }}
|
||||
LETSENCRYPT_EMAIL: ${{ secrets.LETSENCRYPT_EMAIL }}
|
||||
|
||||
- name: Install AWS CLI
|
||||
run: |
|
||||
|
||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -15,6 +15,7 @@
|
||||
"fullchain",
|
||||
"gitea",
|
||||
"iptv",
|
||||
"LETSENCRYPT",
|
||||
"nohup",
|
||||
"passlib",
|
||||
"pyjwt",
|
||||
|
||||
26
app.py
26
app.py
@@ -10,24 +10,30 @@ freedns_user = os.environ.get("FREEDNS_User")
|
||||
freedns_password = os.environ.get("FREEDNS_Password")
|
||||
domain_name = os.environ.get("DOMAIN_NAME")
|
||||
ssh_public_key = os.environ.get("SSH_PUBLIC_KEY")
|
||||
repo_url = os.environ.get("REPO_URL")
|
||||
letsencrypt_email = os.environ.get("LETSENCRYPT_EMAIL")
|
||||
|
||||
if not freedns_user or not freedns_password:
|
||||
raise ValueError("FREEDNS_User and FREEDNS_Password environment variables must be set.")
|
||||
required_vars = {
|
||||
"FREEDNS_User": freedns_user,
|
||||
"FREEDNS_Password": freedns_password,
|
||||
"DOMAIN_NAME": domain_name,
|
||||
"SSH_PUBLIC_KEY": ssh_public_key,
|
||||
"REPO_URL": repo_url,
|
||||
"LETSENCRYPT_EMAIL": letsencrypt_email
|
||||
}
|
||||
|
||||
if not domain_name:
|
||||
raise ValueError("DOMAIN_NAME environment variable must be set.")
|
||||
|
||||
if not ssh_public_key: # Check if SSH public key is set
|
||||
raise ValueError("SSH_PUBLIC_KEY environment variable must be set.")
|
||||
# Check for missing required variables
|
||||
missing_vars = [k for k, v in required_vars.items() if not v]
|
||||
if missing_vars:
|
||||
raise ValueError(f"Missing required environment variables: {', '.join(missing_vars)}")
|
||||
|
||||
IptvUpdaterStack(app, "IptvUpdaterStack",
|
||||
freedns_user=freedns_user,
|
||||
freedns_password=freedns_password,
|
||||
domain_name=domain_name,
|
||||
ssh_public_key=ssh_public_key,
|
||||
# If you don't specify 'env', the stack will be deployed to the account and region that are
|
||||
# configured in your AWS CLI profile. Defaulting to the environment where the CLI is configured.
|
||||
# env=cdk.Environment(account=os.getenv('CDK_DEFAULT_ACCOUNT'), region=os.getenv('CDK_DEFAULT_REGION')),
|
||||
repo_url=repo_url,
|
||||
letsencrypt_email=letsencrypt_email
|
||||
)
|
||||
|
||||
app.synth()
|
||||
@@ -19,6 +19,8 @@ class IptvUpdaterStack(Stack):
|
||||
freedns_password: str,
|
||||
domain_name: str,
|
||||
ssh_public_key: str,
|
||||
repo_url: str,
|
||||
letsencrypt_email: str,
|
||||
**kwargs
|
||||
) -> None:
|
||||
super().__init__(scope, construct_id, **kwargs)
|
||||
@@ -165,7 +167,9 @@ class IptvUpdaterStack(Stack):
|
||||
userdata.add_commands(
|
||||
f'export FREEDNS_User="{freedns_user}"',
|
||||
f'export FREEDNS_Password="{freedns_password}"',
|
||||
f'export DOMAIN_NAME="{domain_name}"'
|
||||
f'export DOMAIN_NAME="{domain_name}"',
|
||||
f'export REPO_URL="{repo_url}"',
|
||||
f'export LETSENCRYPT_EMAIL="{letsencrypt_email}"'
|
||||
)
|
||||
|
||||
# Adds one or more commands to the userdata object.
|
||||
|
||||
@@ -9,7 +9,7 @@ pip3 install certbot certbot-nginx
|
||||
|
||||
cd /home/ec2-user
|
||||
|
||||
git clone https://git.fiorinis.com/Home/iptv-updater-aws.git
|
||||
git clone ${REPO_URL}
|
||||
cd iptv-updater-aws
|
||||
|
||||
pip3 install -r requirements.txt
|
||||
@@ -36,7 +36,7 @@ EOF
|
||||
crontab -u root -l >/dev/null 2>&1 || (echo "" | crontab -u root -)
|
||||
|
||||
# Install and configure acme.sh
|
||||
curl https://get.acme.sh | sh -s email=stefano@fiorinis.com
|
||||
curl https://get.acme.sh | sh -s email=${LEFTENCRYPT_EMAIL}
|
||||
|
||||
# Configure acme.sh to use DNS API for FreeDNS
|
||||
. "/.acme.sh/acme.sh.env"
|
||||
|
||||
@@ -9,9 +9,14 @@ if [ -f ${PWD}/.env ]; then
|
||||
fi
|
||||
|
||||
# Check if required environment variables are set
|
||||
if [ -z "$FREEDNS_User" ] || [ -z "$FREEDNS_Password" ] || [ -z "$DOMAIN_NAME" ] || [ -z "$SSH_PUBLIC_KEY" ]; then
|
||||
echo "Error: FREEDNS_User, FREEDNS_Password, DOMAIN_NAME, and SSH_PUBLIC_KEY must be set as environment variables or in a .env file."
|
||||
exit 1
|
||||
if [ -z "$FREEDNS_User" ] ||
|
||||
[ -z "$FREEDNS_Password" ] ||
|
||||
[ -z "$DOMAIN_NAME" ] ||
|
||||
[ -z "$SSH_PUBLIC_KEY" ] ||
|
||||
[ -z "$REPO_URL" ] ||
|
||||
[ -z "$LETSENCRYPT_EMAIL" ]; then
|
||||
echo "Error: FREEDNS_User, FREEDNS_Password, DOMAIN_NAME, SSH_PUBLIC_KEY, REPO_URL, and LETSENCRYPT_EMAIL must be set as environment variables or in a .env file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Deploy infrastructure
|
||||
|
||||
@@ -9,9 +9,14 @@ if [ -f ${PWD}/.env ]; then
|
||||
fi
|
||||
|
||||
# Check if required environment variables are set
|
||||
if [ -z "$FREEDNS_User" ] || [ -z "$FREEDNS_Password" ] || [ -z "$DOMAIN_NAME" ] || [ -z "$SSH_PUBLIC_KEY" ]; then
|
||||
echo "Error: FREEDNS_User, FREEDNS_Password, DOMAIN_NAME, and SSH_PUBLIC_KEY must be set as environment variables or in a .env file."
|
||||
exit 1
|
||||
if [ -z "$FREEDNS_User" ] ||
|
||||
[ -z "$FREEDNS_Password" ] ||
|
||||
[ -z "$DOMAIN_NAME" ] ||
|
||||
[ -z "$SSH_PUBLIC_KEY" ] ||
|
||||
[ -z "$REPO_URL" ] ||
|
||||
[ -z "$LETSENCRYPT_EMAIL" ]; then
|
||||
echo "Error: FREEDNS_User, FREEDNS_Password, DOMAIN_NAME, SSH_PUBLIC_KEY, REPO_URL, and LETSENCRYPT_EMAIL must be set as environment variables or in a .env file."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Destroy infrastructure
|
||||
|
||||
Reference in New Issue
Block a user