mirror of
https://github.com/dragonlock2/matthewtran.com.git
synced 2026-06-28 01:58:34 +00:00
add ipv4 update script
This commit is contained in:
+6
-1
@@ -1,8 +1,12 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# install dependencies
|
||||
ENV TZ=America/Los_Angeles
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN apt-get update && apt-get upgrade
|
||||
RUN apt-get install -y nginx certbot python3-certbot-nginx
|
||||
RUN apt-get install -y nginx certbot python3-certbot-nginx python3-pip
|
||||
RUN pip3 install sendgrid
|
||||
|
||||
RUN rm /etc/nginx/sites-enabled/default
|
||||
|
||||
@@ -13,4 +17,5 @@ COPY html /var/www/matthewtran.com/html
|
||||
|
||||
# start script
|
||||
WORKDIR /root
|
||||
COPY sendgrid.ke[y] ip_update.py ./
|
||||
COPY entry.sh ./
|
||||
|
||||
@@ -15,6 +15,7 @@ certbot --nginx \
|
||||
-d git.matthewtran.com
|
||||
|
||||
nginx -s reload
|
||||
python3 ip_update.py &
|
||||
|
||||
# try renew once a day
|
||||
while true
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import time
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
from sendgrid import SendGridAPIClient
|
||||
from sendgrid.helpers.mail import Mail
|
||||
|
||||
if __name__ == '__main__':
|
||||
sg = SendGridAPIClient(Path('sendgrid.key').read_text())
|
||||
|
||||
old_ipv4, old_ipv6 = None, None
|
||||
while True:
|
||||
ipv4 = urllib.request.urlopen('https://v4.ident.me').read().decode('utf8')
|
||||
ipv6 = None
|
||||
# ipv6 = urllib.request.urlopen('https://v6.ident.me').read().decode('utf8')
|
||||
|
||||
if ipv4 != old_ipv4 or ipv6 != old_ipv6:
|
||||
msg = Mail(
|
||||
from_email='matthewlamtran@berkeley.edu',
|
||||
to_emails='mtran319@gmail.com',
|
||||
subject='pls update ip',
|
||||
html_content=f'<p>ipv4: {ipv4}</p><p>ipv6: {ipv6}</p>'
|
||||
)
|
||||
try:
|
||||
print(f'IP changed to {ipv4} and {ipv6}')
|
||||
resp = sg.send(msg)
|
||||
except Exception as e:
|
||||
print(e.message)
|
||||
sg = SendGridAPIClient(Path('sendgrid.key').read_text())
|
||||
|
||||
old_ipv4, old_ipv6 = ipv4, ipv6
|
||||
time.sleep(60 * 60) # 60 min
|
||||
Reference in New Issue
Block a user