2024-01-18 20:39:25 +07:00
//go:build wails
// +build wails
package main
import (
2024-01-19 14:34:17 +07:00
"context"
2024-06-17 19:42:09 +07:00
"embed"
2024-09-25 13:20:35 +07:00
"net"
2024-01-18 20:39:25 +07:00
2024-07-05 20:32:40 +07:00
"github.com/getAlby/hub/logger"
"github.com/getAlby/hub/service"
"github.com/getAlby/hub/wails"
2024-01-18 20:39:25 +07:00
log "github.com/sirupsen/logrus"
)
2024-06-17 19:42:09 +07:00
//go:embed all:frontend/dist
var assets embed . FS
//go:embed appicon.png
var appIcon [ ] byte
2024-01-18 20:39:25 +07:00
func main ( ) {
2024-09-25 13:20:35 +07:00
// Get a port lock on a rare port to prevent the app running twice
listener , err := net . Listen ( "tcp" , "0.0.0.0:21420" )
if err != nil {
log . Println ( "Another instance of Alby Hub is already running." )
return
}
defer listener . Close ( )
2024-08-23 15:17:27 +05:30
log . Info ( "Alby Hub starting in WAILS mode" )
2024-01-19 14:34:17 +07:00
ctx , cancel := context . WithCancel ( context . Background ( ) )
2025-06-17 21:07:52 +07:00
svc , err := service . NewService ( ctx )
if err != nil {
log . WithError ( err ) . Fatal ( "Failed to create service" )
return
}
2024-01-18 20:39:25 +07:00
2024-06-17 19:42:09 +07:00
app := wails . NewApp ( svc )
wails . LaunchWailsApp ( app , assets , appIcon )
logger . Logger . Info ( "Wails app exited" )
2024-01-18 20:39:25 +07:00
2024-06-17 19:42:09 +07:00
logger . Logger . Info ( "Cancelling service context..." )
2024-01-19 14:34:17 +07:00
// cancel the service context
cancel ( )
2024-07-13 20:01:33 +07:00
svc . Shutdown ( )
2024-06-17 19:42:09 +07:00
logger . Logger . Info ( "Service exited" )
2025-03-05 11:24:10 +07:00
logger . Logger . Info ( "Alby Hub needs to stay online to send and receive transactions. Channels may be closed if your hub stays offline for an extended period of time." )
2024-01-18 20:39:25 +07:00
}