diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000..ee427c3 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,96 @@ +name: Deployment + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + deploy-frontend: + name: Deploy Frontend + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 20.x ] + architecture: [ x64 ] + cache: [ yarn ] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + architecture: ${{ matrix.architecture }} + cache: ${{ matrix.cache }} + + - name: Install dependencies + run: yarn + working-directory: ./website + + - name: Build + run: yarn build + working-directory: ./website + env: + OAUTH_CLIENT_ID: ${{ secrets.OAUTH_CLIENT_ID }} + OAUTH_CLIENT_SECRET: ${{ secrets.OAUTH_CLIENT_SECRET }} + OAUTH_REDIRECT_URI: ${{ secrets.OAUTH_REDIRECT_URI }} + DB_URL: ${{ secrets.DB_URL }} + + - name: Remove old files from server + run: | + ssh -p ${{ secrets.SSH_SERVER_PORT }} ${{ secrets.SSH_SERVER_USERNAME }}@${{ secrets.SSH_SERVER_NAME }} "rm -rf ${{ secrets.SSH_SERVER_FRONTEND_PATH }}*" + env: + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} + + - name: Deploy frontend to server + uses: wlixcc/SFTP-Deploy-Action@v1.2.4 + with: + username: ${{ secrets.SSH_SERVER_USERNAME }} + server: ${{ secrets.SSH_SERVER_NAME }} + port: ${{ secrets.SSH_SERVER_PORT }} + ssh_private_key: ${{ secrets.DEPLOY_KEY }} + local_path: "./website/dist/*" + remote_path: ${{ secrets.SSH_SERVER_FRONTEND_PATH }} + + deploy-backend: + name: Deploy Backend + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Remove old files from server + run: | + ssh -p ${{ secrets.SSH_SERVER_PORT }} ${{ secrets.SSH_SERVER_USERNAME }}@${{ secrets.SSH_SERVER_NAME }} "rm -rf ${{ secrets.SSH_SERVER_BACKEND_PATH }}*" + env: + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} + + - name: Deploy backend to server + uses: wlixcc/SFTP-Deploy-Action@v1.2.4 + with: + username: ${{ secrets.SSH_SERVER_USERNAME }} + server: ${{ secrets.SSH_SERVER_NAME }} + port: ${{ secrets.SSH_SERVER_PORT }} + ssh_private_key: ${{ secrets.DEPLOY_KEY }} + local_path: "./backend/*" + remote_path: ${{ secrets.SSH_SERVER_BACKEND_PATH }} + + - name: Create .env file + run: | + ssh -p ${{ secrets.SSH_SERVER_PORT }} ${{ secrets.SSH_SERVER_USERNAME }}@${{ secrets.SSH_SERVER_NAME }} "cd ${{ secrets.SSH_SERVER_BACKEND_PATH }} && echo 'OAUTH_CLIENT_ID="${{ secrets.OAUTH_CLIENT_ID }}"\nOAUTH_CLIENT_SECRET="${{ secrets.OAUTH_CLIENT_SECRET }}"\nOAUTH_REDIRECT_URI="${{ secrets.OAUTH_REDIRECT_URI }}"\nDB_URL="${{ secrets.DB_URL }}"' > .env" + env: + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} + + - name: Run backend + run: | + ssh -p ${{ secrets.SSH_SERVER_PORT }} ${{ secrets.SSH_SERVER_USERNAME }}@${{ secrets.SSH_SERVER_NAME }} "cd ${{ secrets.SSH_SERVER_BACKEND_PATH }} && screen -S fitplanconnect-backend -X quit && screen -S fitplanconnect-backend -d -m bun run dev" + env: + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} diff --git a/backend/src/utils/oauth.ts b/backend/src/utils/oauth.ts index 7d00059..d916fb9 100644 --- a/backend/src/utils/oauth.ts +++ b/backend/src/utils/oauth.ts @@ -2,9 +2,9 @@ import 'dotenv/config' import { GitHub } from 'arctic' export const github = new GitHub( - process.env.GITHUB_CLIENT_ID as string, - process.env.GITHUB_CLIENT_SECRET as string, + process.env.OAUTH_CLIENT_ID as string, + process.env.OAUTH_CLIENT_SECRET as string, { - redirectURI: process.env.GITHUB_REDIRECT_URI as string, + redirectURI: process.env.OAUTH_REDIRECT_URI as string, }, ) diff --git a/docs/.prettierrc b/docs/.prettierrc new file mode 100644 index 0000000..55972b8 --- /dev/null +++ b/docs/.prettierrc @@ -0,0 +1,23 @@ +{ + "arrowParens": "avoid", + "bracketSameLine": false, + "bracketSpacing": true, + "semi": false, + "singleQuote": true, + "jsxSingleQuote": true, + "quoteProps": "as-needed", + "trailingComma": "all", + "singleAttributePerLine": false, + "htmlWhitespaceSensitivity": "strict", + "vueIndentScriptAndStyle": true, + "proseWrap": "never", + "insertPragma": false, + "printWidth": 120, + "requirePragma": false, + "tabWidth": 2, + "useTabs": true, + "embeddedLanguageFormatting": "off", + "endOfLine": "auto", + "importOrderSeparation": false, + "importOrderCaseInsensitive": true +} diff --git a/docs/next.config.js b/docs/next.config.js index ef28363..87282c2 100644 --- a/docs/next.config.js +++ b/docs/next.config.js @@ -1,6 +1,9 @@ const withNextra = require('nextra')({ - theme: 'nextra-theme-docs', - themeConfig: './theme.config.tsx', + theme: 'nextra-theme-docs', + themeConfig: './theme.config.tsx', + reactStrictMode: true, + distDir: 'dist', + output: 'export', }) module.exports = withNextra() diff --git a/docs/package.json b/docs/package.json index 97fd447..b5779fd 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,7 +5,8 @@ "scripts": { "dev": "next dev", "build": "next build", - "start": "next start" + "start": "next start", + "prod": "next export" }, "repository": { "type": "git",