Compare commits

...

10 Commits

6 changed files with 164 additions and 11 deletions

79
setup_ente_web.sh Executable file
View File

@ -0,0 +1,79 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status.
set -e
# This script assumes you have already configured the .env.local file in the photos app directory
# set the local repo location
LOCAL_REPO="/home/mason/src/ente"
cd $LOCAL_REPO/web
# make sure that all the previous build steps have been completed
# the following steps are required to build the photos app
#git submodule update --init --recursive
#yarn install
#yarn build:photos # puts the built files in the web/apps/photos/out directory
echo "$LOCAL_REPO/web/apps/photos/out"
# make sure the photos app is built
if [ ! -d "$LOCAL_REPO/web/apps/photos/out" ]; then
echo "The photos app has not been built. Please build the app and rerun the script."
# print the steps to build the photos app
echo "To build the photos app, run the following commands:"
echo "cd $LOCAL_REPO/web"
echo "git submodule update --init --recursive"
echo "yarn install"
echo "yarn build:photos"
exit 1
fi
# make sure the destination directory exists
sudo mkdir -p /var/www/ente
sudo cp -r $LOCAL_REPO/web/apps/photos/out /var/www/ente/photos
# configure nginx to serve the photos app on ente.sa.vin
sudo tee /etc/nginx/sites-available/ente.sa.vin.conf > /dev/null <<EOL
server {
listen 80;
server_name ente.sa.vin;
location / {
root /var/www/ente/photos;
index index.html;
try_files \$uri /index.html;
}
}
EOL
# create a symbolic link to enable the site
sudo ln -s /etc/nginx/sites-available/ente.sa.vin.conf /etc/nginx/sites-enabled/
# Also configure nginx to serve the same photos app on entep.sa.vin
sudo tee /etc/nginx/sites-available/entep.sa.vin.conf > /dev/null <<EOL
server {
listen 80;
server_name entep.sa.vin;
location / {
root /var/www/ente/photos;
index index.html;
try_files \$uri /index.html;
}
}
EOL
sudo ln -s /etc/nginx/sites-available/entep.sa.vin.conf /etc/nginx/sites-enabled/
# reload nginx to apply changes
sudo systemctl reload nginx
# use certbot to add SSL certificate for the photos app
sudo certbot --nginx -d ente.sa.vin -d entep.sa.vin
echo "Ente web app has been set up successfully. Access the app at https://ente.sa.vin or https://entep.sa.vin"

View File

@ -35,12 +35,13 @@ Group=minio
ProtectSystem=full ProtectSystem=full
# Set environment variables for MinIO configuration # Set environment variables for MinIO configuration
Environment=MINIO_BROWSER_REDIRECT_URL=https://minio.sa.vin Environment=MINIO_SERVER_URL=https://minio.sa.vin/
Environment=MINIO_BROWSER_REDIRECT_URL=https://minio.sa.vin/minio/ui
Environment=MINIO_ROOT_USER=minio_root_user_60c4cbcd Environment=MINIO_ROOT_USER=minio_root_user_60c4cbcd
Environment=MINIO_ROOT_PASSWORD=74fcd51acc7bfeca02223ce516324a Environment=MINIO_ROOT_PASSWORD=74fcd51acc7bfeca02223ce516324a
EnvironmentFile=-/etc/default/minio EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server /mnt/md0/minio/ ExecStart=/usr/local/bin/minio server --console-address ":45855" /mnt/md0/minio/
# Let systemd restart this service always # Let systemd restart this service always
Restart=always Restart=always
# Specifies the maximum file descriptor number that can be opened by this process # Specifies the maximum file descriptor number that can be opened by this process

View File

@ -3,8 +3,8 @@
# Exit immediately if a command exits with a non-zero status. # Exit immediately if a command exits with a non-zero status.
set -e set -e
# MinIO server should be running on port 9000 # MinIO server should be running on port 45855
MINIO_PORT=9000 MINIO_PORT=45855
# Configure nginx to proxy requests to the MinIO server # Configure nginx to proxy requests to the MinIO server
sudo tee /etc/nginx/sites-available/minio.sa.vin.conf > /dev/null <<EOL sudo tee /etc/nginx/sites-available/minio.sa.vin.conf > /dev/null <<EOL
@ -13,7 +13,7 @@ server {
server_name minio.sa.vin; server_name minio.sa.vin;
location / { location / {
proxy_pass http:// proxy_pass http://127.0.0.1:$MINIO_PORT;
proxy_set_header Host \$host; proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
@ -22,8 +22,66 @@ server {
} }
EOL EOL
sudo tee /etc/nginx/sites-available/minio.sa.vin.conf > /dev/null <<EOL
upstream minio_s3 {
server 10.0.0.190:9000;
}
upstream minio_console {
server 10.0.0.190:$MINIO_PORT;
}
server {
server_name minio.sa.vin;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://minio_s3; # This uses the upstream directive definition to load balance
}
location /minio/ui/ {
rewrite ^/minio/ui/(.*) /$1 break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
# This is necessary to pass the correct IP to be hashed
real_ip_header X-Real-IP;
proxy_connect_timeout 300;
# To support websockets in MinIO versions released after January 2023
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
# Uncomment the following line to set the Origin request to an empty string
# proxy_set_header Origin '';
chunked_transfer_encoding off;
proxy_pass http://minio_console; # This uses the upstream directive definition to load balance
}
listen 80;
}
EOL
# Create a symbolic link to enable the site # Create a symbolic link to enable the site
sudo ln -s /etc/nginx/sites-available/minio.sa.vin /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/minio.sa.vin.conf /etc/nginx/sites-enabled/
# Reload nginx to apply changes # Reload nginx to apply changes
sudo systemctl reload nginx sudo systemctl reload nginx

View File

@ -4,7 +4,7 @@
set -e set -e
# set the local repo location # set the local repo location
LOCAL_REPO="~/src/ente" LOCAL_REPO="/home/mason/src/ente"
INSTALL_DIR="/usr/local/bin/" INSTALL_DIR="/usr/local/bin/"
LIB_DIR="/var/lib/museum/" LIB_DIR="/var/lib/museum/"
PORT=1098 PORT=1098
@ -14,13 +14,13 @@ cd $LOCAL_REPO/server
# sed command to replace `server.Run(":8080")` with `server.Run(":$PORT")` # sed command to replace `server.Run(":8080")` with `server.Run(":$PORT")`
sed -i "s/server.Run(\":8080\")/server.Run(\":$PORT\")/g" cmd/museum/main.go sed -i "s/server.Run(\":8080\")/server.Run(\":$PORT\")/g" cmd/museum/main.go
go build -o museum cmd/museum/main.go /usr/local/go/bin/go build -o museum cmd/museum/main.go
sudo cp museum $INSTALL_DIR sudo cp museum $INSTALL_DIR
# Create a new user and group named 'museum' # Create a new user and group named 'museum'
sudo groupadd -r museum sudo groupadd -r museum || true
sudo useradd -r -g museum -d $LIB_DIR -s /sbin/nologin -c "museum user" museum sudo useradd -r -g museum -d $LIB_DIR -s /sbin/nologin -c "museum user" museum || true
sudo mkdir -p $LIB_DIR sudo mkdir -p $LIB_DIR

View File

@ -19,7 +19,7 @@ server {
EOL EOL
# Create a symbolic link to enable the site # Create a symbolic link to enable the site
sudo ln -s /etc/nginx/sites-available/museum /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/museum.sa.vin.conf /etc/nginx/sites-enabled/
# Reload nginx to apply changes # Reload nginx to apply changes
sudo systemctl reload nginx sudo systemctl reload nginx

15
update_minio.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status.
set -e
# Download and install MinIO server
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
# Make the MinIO binary executable
chmod +x /usr/local/bin/minio
# Restart the MinIO service
sudo systemctl restart minio
echo "MinIO server has been updated successfully."