Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
echo -e "User-agent: *\nDisallow: /" > public/robots.txt
fi

- name: Fetch and Update Download Link
- name: Fetch and Update Morphe Download Link
run: |
MANAGER_PROPS_URL="https://raw.githubusercontent.com/HundEdFeteTree/HappyFunTest/refs/heads/main/gradle.properties"
# FIXME: Update this to real repo:
Expand All @@ -54,11 +54,34 @@ jobs:

# Create a temporary file preserving other redirects
# We ignore grep's exit code in case the file doesn't exist or has no matches
grep -v -E '(^/download/?\s)' public/_redirects > public/_redirects.tmp || true
grep -v -E '(^/download\s)' public/_redirects > public/_redirects.tmp || true

# Now append the new redirects
echo "/download/ $DOWNLOAD_URL 302" >> public/_redirects.tmp
echo "/download $DOWNLOAD_URL 302" >> public/_redirects.tmp
echo "/download $DOWNLOAD_URL 301" >> public/_redirects.tmp

# Replace the original file
mv public/_redirects.tmp public/_redirects

echo "Updated _redirects file:"
cat public/_redirects

- name: Fetch and Update MicroG Download Link
run: |
MICROG_BUILD_GRADLE_URL="https://raw.githubusercontent.com/WSTxda/MicroG-RE/refs/heads/master/build.gradle"
# parse out "ext.appVersionName = x.xx"
VERSION=$(curl -s $MICROG_BUILD_GRADLE_URL | grep "appVersionName" | head -n 1 | cut -d '=' -f 2 | tr -d " '\"[:space:]")
if [ -z "$VERSION" ]; then
echo "Error: Could not find appVersionName in build.gradle." >&2
exit 1
fi
DOWNLOAD_URL="https://github.com/WSTxda/MicroG-RE/releases/download/$VERSION/microg-release.apk"

# Create a temporary file preserving other redirects
# We ignore grep's exit code in case the file doesn't exist or has no matches
grep -v -E '(^/microg/download\s)' public/_redirects > public/_redirects.tmp || true

# Now append the new redirect
echo "/microg/download $DOWNLOAD_URL 301" >> public/_redirects.tmp

# Replace the original file
mv public/_redirects.tmp public/_redirects
Expand Down
26 changes: 25 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,27 @@
# Default ignored files
/.idea/**
/node_modules/**
/node_modules/**

# Dependencies
node_modules/
package-lock.json

# Wrangler
.wrangler/
.dev.vars
.mf/

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Logs
*.log
npm-debug.log*
9 changes: 7 additions & 2 deletions public/_redirects
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
/download/ https://github.com/MorpheApp/morphe-manager/releases/download/v1.0.0-dev.2/morphe-manager-1.0.0-dev.2.apk 302
/download https://github.com/MorpheApp/morphe-manager/releases/download/v1.0.0-dev.2/morphe-manager-1.0.0-dev.2.apk 302
/donate /#donate 307
/donate/ /#donate 307
/download/ /download 308
/microg/download/ /download/microg 308

/download https://github.com/MorpheApp/morphe-manager/releases/download/v1.0.0/morphe-manager-1.0.0.apk 301
/microg/download https://github.com/WSTxda/MicroG-RE/releases/download/5.13/microg-release.apk 301
8 changes: 0 additions & 8 deletions public/donate/index.html

This file was deleted.

2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ <h4>Support</h4>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2025 Morphe. Open source and free forever.</p>
<p>&copy; Morphe. Open source and free forever.</p>
</div>
</div>
</footer>
Expand Down
145 changes: 145 additions & 0 deletions public/microg/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Download microG for Morphe YouTube - Required component for signing in">
<title>Download microG - Morphe</title>
<link rel="stylesheet" href="/css/styles.css">
<script defer src="https://cloud.umami.is/script.js" data-website-id="f6fcde7a-0660-49e1-b56d-99f8b3d6566e"></script>
<link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"/>
<link rel="icon" type="image/svg+xml" href="/favicon.svg"/>
<link rel="shortcut icon" href="/favicon.ico"/>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/>
<meta name="apple-mobile-web-app-title" content="Morphe"/>
<link rel="manifest" href="/site.webmanifest"/>
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a href="/" class="nav-logo">
<img src="/images/morphe_wordmark_light.svg" alt="Morphe" class="nav-logo-wordmark">
</a>
</div>
</nav>

<!-- Hero Section -->
<section id="home" class="hero">
<div class="hero-container">
<div class="hero-content">
<h1 class="hero-title">Download <span class="gradient-text">microG</span></h1>
<p class="hero-description">
microG is required to use YouTube Morphe
</p>
<div class="hero-buttons">
<a href="/microg/download" class="btn btn-primary" data-umami-event="Download microG Button Click">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
<polyline points="7 10 12 15 17 10"></polyline>
<line x1="12" y1="15" x2="12" y2="3"></line>
</svg>
Download microG
</a>
</div>
</div>
<div class="hero-visual">
<!-- Animated Gradient Background -->
<div class="gradient-background">
<div class="gradient-blob blob-1"></div>
<div class="gradient-blob blob-2"></div>
<div class="gradient-blob blob-3"></div>
</div>

<!-- Feature Icons Grid -->
<div class="feature-icons-grid">
<div class="feature-icon-item">
<div class="icon">🔐</div>
<div class="label">Google Sign-In</div>
</div>
<div class="feature-icon-item">
<div class="icon">☁️</div>
<div class="label">Cloud Sync</div>
</div>
<div class="feature-icon-item">
<div class="icon">🔔</div>
<div class="label">Notifications</div>
</div>
<div class="feature-icon-item">
<div class="icon">📱</div>
<div class="label">Lightweight</div>
</div>
<div class="feature-icon-item">
<div class="icon">🚀</div>
<div class="label">Fast & Stable</div>
</div>
<div class="feature-icon-item">
<div class="icon">🛡️</div>
<div class="label">Privacy First</div>
</div>
</div>
</div>
</div>
</section>

<!-- Info Section -->
<section id="what-is-microg" class="how-it-works">
<div class="container">
<div class="section-header">
<h2 class="section-title">What is microG?</h2>
</div>

<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
<path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
</svg>
</div>
<h3 class="feature-title">Google Services</h3>
<p class="feature-description">
microG provides Google Play Services support, enabling the use of your Google account with YouTube Morphe.
</p>
</div>

<div class="feature-card">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
</svg>
</div>
<h3 class="feature-title">Privacy Focused</h3>
<p class="feature-description">
microG is an open-source reimplementation of Google services that respects your privacy while providing essential functionality.
</p>
</div>

<div class="feature-card">
<div class="feature-icon">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"></circle>
<polyline points="12 6 12 12 16 14"></polyline>
</svg>
</div>
<h3 class="feature-title">One-Time Install</h3>
<p class="feature-description">
Install microG once and it works with all your Morphe apps. No need to reinstall when updating YouTube Morphe.
</p>
</div>
</div>
</div>
</section>

<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-bottom">
<p>&copy; Morphe. Open source and free forever.</p>
</div>
</div>
</footer>

<script src="/js/main.js"></script>
</body>
</html>