Update Fedimint configuration and enhance onboarding process
- Upgraded Fedimint version to v0.10.0 in docker-compose.yml and manifest.yml, adding support for the built-in Guardian UI. - Modified .gitignore to exclude deploy-config.sh script. - Enhanced onboarding process in AuthManager to persist onboarding state and validate password strength during user setup. - Updated API to handle onboarding completion and password change requests, ensuring a smoother user experience. - Improved configuration management to support Nostr discovery and Tor proxy settings, enhancing node identity features.
This commit is contained in:
@@ -42,6 +42,13 @@ const repoMap = {
|
||||
'penpot': 'penpot-startos',
|
||||
}
|
||||
|
||||
// Custom icon URLs for apps without Start9 repos
|
||||
const customIconUrls = {
|
||||
'fedimint': [
|
||||
'https://raw.githubusercontent.com/fedibtc/fedimint-ui/master/apps/router/public/favicon.svg',
|
||||
],
|
||||
}
|
||||
|
||||
const iconDir = path.join(__dirname, '../public/assets/img/app-icons')
|
||||
|
||||
// Ensure directory exists
|
||||
@@ -82,36 +89,52 @@ function downloadFile(url, filepath) {
|
||||
}
|
||||
|
||||
async function downloadIcon(appId) {
|
||||
const repoName = repoMap[appId] || `${appId}-startos`
|
||||
|
||||
// Try multiple icon paths
|
||||
const iconPaths = [
|
||||
`icon.png`,
|
||||
`icon.svg`,
|
||||
`assets/icon.png`,
|
||||
`assets/icon.svg`,
|
||||
]
|
||||
|
||||
for (const iconPath of iconPaths) {
|
||||
const url = `https://raw.githubusercontent.com/Start9Labs/${repoName}/main/${iconPath}`
|
||||
const extension = iconPath.endsWith('.svg') ? 'svg' : 'png'
|
||||
const filepath = path.join(iconDir, `${appId}.${extension}`)
|
||||
|
||||
// Skip if file already exists
|
||||
if (fs.existsSync(filepath)) {
|
||||
const targetExt = 'webp' // Prefer webp for consistency with mempool, etc.
|
||||
const fallbackExts = ['webp', 'png', 'svg']
|
||||
const filepath = path.join(iconDir, `${appId}.webp`)
|
||||
|
||||
// Skip if file already exists
|
||||
if (appId === 'fedimint' && fs.existsSync(path.join(iconDir, 'fedimint.png'))) {
|
||||
console.log(`⏭️ Skipping ${appId} (fedimint.png exists)`)
|
||||
return true
|
||||
}
|
||||
for (const ext of fallbackExts) {
|
||||
const fp = path.join(iconDir, `${appId}.${ext}`)
|
||||
if (fs.existsSync(fp)) {
|
||||
console.log(`⏭️ Skipping ${appId} (already exists)`)
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Try custom URLs first (e.g. fedimint from fedimint-ui)
|
||||
if (customIconUrls[appId]) {
|
||||
for (const url of customIconUrls[appId]) {
|
||||
try {
|
||||
const ext = url.endsWith('.svg') ? 'svg' : (url.endsWith('.png') ? 'png' : 'webp')
|
||||
const fp = path.join(iconDir, `${appId}.${ext}`)
|
||||
await downloadFile(url, fp)
|
||||
return true
|
||||
} catch (err) {
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const repoName = repoMap[appId] || `${appId}-startos`
|
||||
const iconPaths = ['icon.png', 'icon.svg', 'assets/icon.png', 'assets/icon.svg']
|
||||
|
||||
for (const iconPath of iconPaths) {
|
||||
const url = `https://raw.githubusercontent.com/Start9Labs/${repoName}/main/${iconPath}`
|
||||
const extension = iconPath.endsWith('.svg') ? 'svg' : 'png'
|
||||
const fp = path.join(iconDir, `${appId}.${extension}`)
|
||||
try {
|
||||
await downloadFile(url, filepath)
|
||||
await downloadFile(url, fp)
|
||||
return true
|
||||
} catch (err) {
|
||||
// Try next path
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
console.log(`❌ Failed to download icon for ${appId}`)
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user