Spaces:
Paused
Paused
set -e | |
echo "Node Version: $(node -v)" | |
echo "cURL Version: $(curl --version | head -n 1)" | |
echo "Docker Version: $(docker -v)" | |
echo "Docker Compose Version: $(docker compose version)" | |
if [ ! -f docker/.env ] | |
then | |
echo "Generating .env file..." | |
ENV="develop" | |
echo "Preparing your keys from https://my.telegram.org/" | |
read -p "Enter your TG_API_ID: " TG_API_ID | |
read -p "Enter your TG_API_HASH: " TG_API_HASH | |
echo | |
read -p "Enter your ADMIN_USERNAME: " ADMIN_USERNAME | |
read -p "Enter your PORT: " PORT | |
PORT="${PORT:=4000}" | |
DB_PASSWORD=$(openssl rand -hex 48) | |
echo "ENV=$ENV" > docker/.env | |
echo "PORT=$PORT" >> docker/.env | |
echo "TG_API_ID=$TG_API_ID" >> docker/.env | |
echo "TG_API_HASH=$TG_API_HASH" >> docker/.env | |
echo "ADMIN_USERNAME=$ADMIN_USERNAME" >> docker/.env | |
export DATABASE_URL=postgresql://postgres:$DB_PASSWORD@db:5432/teledrive | |
echo "DB_PASSWORD=$DB_PASSWORD" >> docker/.env | |
cd docker | |
docker compose build teledrive | |
docker compose up -d | |
sleep 2 | |
docker compose exec teledrive yarn workspace api prisma migrate reset | |
docker compose exec teledrive yarn workspace api prisma migrate deploy | |
echo "If you get an error like this: | |
A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve | |
Migration name: 20220525012308_add_password_files | |
Database error code: 42P01 | |
Database error: | |
ERROR: relation \"files\" does not exist | |
DbError { severity: \"ERROR\", parsed_severity: Some(Error), code: SqlState(E42P01), message: \"relation \\\"files\\\" does not exist\", detail: None, hint: None, position: None, where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some(\"namespace.c\"), line: Some(432), routine: Some(\"RangeVarGetRelidExtended\") } | |
Please run the following commands to resolve the issue: | |
cd docker | |
docker compose exec teledrive yarn workspace api prisma migrate reset | |
docker compose exec teledrive yarn workspace api prisma migrate deploy | |
Only run these commands once as these commands reset the database only use for initial setup. If you have any more errors please report on github | |
https://github.com/mgilangjanuar/teledrive/issues | |
Enjoy your deployment! | |
" | |
else | |
git pull origin main | |
export $(cat docker/.env | xargs) | |
cd docker | |
docker-compose down | |
docker-compose up --build --force-recreate -d | |
sleep 2 | |
docker-compose up -d | |
docker-compose exec teledrive yarn workspace api prisma migrate deploy | |
git reset --hard | |
git clean -f | |
git pull origin main | |
echo " | |
If you encounter the following error after deploying: | |
failed to solve: error from sender: open /home/user/teledrive/docker/data: permission denied | |
Please run the following commands: | |
cd docker | |
sudo chmod -R 777 data | |
Then, you can go back to the root directory of the project with | |
cd ../ | |
You can then start the script again, and the issue should be resolved. Note that the permissions will be reset, so you will need to perform this step every time you redeploy the docker. | |
" | |
fi | |