Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

Commit

Permalink
feat: evergreen web ui (#2520)
Browse files Browse the repository at this point in the history
Switch to loading web ui from IPNS name so it's always the latest.

Relevant release notes can be found at https://github.com/ipfs-shipyard/ipfs-webui/releases
  • Loading branch information
hacdias authored and achingbrain committed Oct 15, 2019
1 parent 220d1f0 commit 069bf73
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 24 deletions.
4 changes: 2 additions & 2 deletions src/cli/commands/daemon.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,10 @@ module.exports = {
try {
await daemon.start()
daemon._httpApi._apiServers.forEach(apiServer => {
print(`API listening on ${apiServer.info.ma.toString()}`)
print(`API listening on ${apiServer.info.ma}`)
})
daemon._httpApi._gatewayServers.forEach(gatewayServer => {
print(`Gateway (read only) listening on ${gatewayServer.info.ma.toString()}`)
print(`Gateway (read only) listening on ${gatewayServer.info.ma}`)
})
daemon._httpApi._apiServers.forEach(apiServer => {
print(`Web UI available at ${toUri(apiServer.info.ma)}/webui`)
Expand Down
48 changes: 26 additions & 22 deletions src/http/api/routes/webui.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,36 @@
'use strict'

const Joi = require('@hapi/joi')
const resources = require('../../gateway/resources')
const multiaddr = require('multiaddr')
const debug = require('debug')
const log = debug('ipfs:webui:info')
log.error = debug('ipfs:webui:error')

module.exports = [
{
method: '*',
path: '/ipfs/{path*}',
options: {
handler: resources.gateway.handler,
validate: {
params: {
path: Joi.string().required()
}
},
response: {
ranges: false // disable built-in support, handler does it manually
},
ext: {
onPostHandler: { method: resources.gateway.afterHandler }
}
}
},
{
method: '*',
path: '/webui',
handler (request, h) {
return h.redirect('/ipfs/QmPURAjo3oneGH53ovt68UZEBvsc8nNmEhQZEpsVEQUMZE')
async handler (request, h) {
let scheme = 'http'
let port
let host

try {
const { ipfs } = request.server.app
const gateway = await ipfs.config.get('Addresses.Gateway')
const address = multiaddr(gateway).nodeAddress()

port = address.port
host = address.host
} catch (err) {
// may not have gateway configured
log.error(err)

scheme = 'https'
port = 443
host = 'gateway.ipfs.io'
}

return h.redirect(`${scheme}://${host}:${port}/ipns/webui.ipfs.io`)
}
}
]

0 comments on commit 069bf73

Please sign in to comment.