Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Self-Host Web Viewer #71

Open
duncanam opened this issue Jun 26, 2023 · 27 comments
Open

[FEATURE] Self-Host Web Viewer #71

duncanam opened this issue Jun 26, 2023 · 27 comments
Labels
enhancement New feature or request

Comments

@duncanam
Copy link

Is your feature request related to a problem? Please describe.
No, although a functional web viewer for those without the app would be slick.

Describe the solution you'd like
The ability to self host this web viewer- perhaps a docker file that we can build that gets the server and configs set up.

Describe alternatives you've considered
N/A

Additional context
N/A

@duncanam duncanam added the enhancement New feature or request label Jun 26, 2023
@Myzel394
Copy link
Owner

Myzel394 commented Jun 26, 2023

Hey @duncanam,

this website is a Solid app, so you could host it based of the SolidJS docs. Although a Docker file would be much easier - I'll add one in the following days.

@duncanam
Copy link
Author

duncanam commented Jun 26, 2023

Awesome! You are so speedy.

To be clear, the web viewer isn't ready yet, correct? My view after I've copied the generated link to my browser:

Screenshot_20230626-075904_1.png

@Myzel394
Copy link
Owner

To be clear, the web viewer isn't ready yet, correct? My view after I've copied the generated link to my browser:

Could you try reloading the tab a few times with the generated link? I know it sounds dumb but that did the trick for me 😂 Gonna have to fix this too

@Myzel394
Copy link
Owner

Myzel394 commented Jun 26, 2023

Note for me:

  • Support setting domain in SettingsScreen

@duncanam
Copy link
Author

To be clear, the web viewer isn't ready yet, correct? My view after I've copied the generated link to my browser:

Could you try reloading the tab a few times with the generated link? I know it sounds dumb but that did the trick for me 😂 Gonna have to fix this too

I tried both in something chrome-based as well as firefox and releaded the page around 10 times and got the same page as above :/

@Myzel394
Copy link
Owner

I think this might be due to the selected Nostr relay. I haven't figured out why, but some relays do not seem to be storing the data properly. Could you try using a different relay?

@duncanam
Copy link
Author

I am attempting to try this- unfortunately, it now is not pulling location at all for me while a task is running. I used the "test location pulling feature" in the settings menu, and it was successful, so I'm puzzled. I tried with both an existing as well as new task.

@Myzel394
Copy link
Owner

@duncanam Could you try using the relay "relay.damus.io"? I have tested it just now and it definitely works for me. Note that you can trigger a manual location update by long pressing the launcher icon and then tapping on "Update location now".

@duncanam
Copy link
Author

Okay, something wonky is up, but could be my misunderstanding of the infra. So, the existing task I selected 5 random relays, and it did not find pull any locations, but the new task pulled a location around 10 minutes in, and that also had a location.

Okay, back to the question at hand- I generated a link for that, popped it into 2 different browsers, and I am still getting the webpage in the screenshot above.

@duncanam
Copy link
Author

@duncanam Could you try using the relay "relay.damus.io"? I have tested it just now and it definitely works for me. Note that you can trigger a manual location update by long pressing the launcher icon and then tapping on "Update location now".

Can do! And good to know.

@Myzel394
Copy link
Owner

Okay, back to the question at hand- I generated a link for that, popped it into 2 different browsers, and I am still getting the webpage in the screenshot above.

Okay I'm facing the issue too now, gotta fix this in the next few hours

@duncanam
Copy link
Author

@duncanam Could you try using the relay "relay.damus.io"? I have tested it just now and it definitely works for me. Note that you can trigger a manual location update by long pressing the launcher icon and then tapping on "Update location now".

Using this relay, copying the generated link, and pasting into my mobile chrome / firefox browser shows me the same webpage as before.

Also notably the "Update location now" spun indefinitely on my phone, but the running task in the background was able to pull a few locations though. Not sure if intended behavior.

@Myzel394
Copy link
Owner

Using this relay, copying the generated link, and pasting into my mobile chrome / firefox browser shows me the same webpage as before.

I have pushed the update, could you try it again?

Also notably the "Update location now" spun indefinitely on my phone, but the running task in the background was able to pull a few locations though. Not sure if intended behavior.

Strange, it shouldn't take long if the background location fetches don't take long either. Could you tell me what OS you are using and whether you have Google Play Services installed?

@duncanam
Copy link
Author

Using this relay, copying the generated link, and pasting into my mobile chrome / firefox browser shows me the same webpage as before.

I have pushed the update, could you try it again?

Sure, I'll update here once done.

Also notably the "Update location now" spun indefinitely on my phone, but the running task in the background was able to pull a few locations though. Not sure if intended behavior.

Strange, it shouldn't take long if the background location fetches don't take long either. Could you tell me what OS you are using and whether you have Google Play Services installed?

I am using GrapheneOS, and have Google Play Services installed through their sandbox. I have installed Locus through Droid-ify, which pulls from Izzy's builds as far as I know.

@Myzel394
Copy link
Owner

I am using GrapheneOS, and have Google Play Services installed through their sandbox. I have installed Locus through Droid-ify, which pulls from Izzy's builds as far as I know.

Okay that's exactly the same setup I'm also using. Have you also disabled location rerouting and enabled Location Accuracy? Normally GrapheneOS reroutes location requests to the OS (instead of using Play Services). This is better for privacy, but personally I have disabled it (meaning that location requests are sent to Google) and even allowed Location Accuracy, as I've installed Play Services anyway and FLOSS locations did not work at all for me unfortunately.

I think this might be an issue on your side, as the almost exact same setup works on my side

@duncanam
Copy link
Author

I am using GrapheneOS, and have Google Play Services installed through their sandbox. I have installed Locus through Droid-ify, which pulls from Izzy's builds as far as I know.

Okay that's exactly the same setup I'm also using. Have you also disabled location rerouting and enabled Location Accuracy? Normally GrapheneOS reroutes location requests to the OS (instead of using Play Services). This is better for privacy, but personally I have disabled it (meaning that location requests are sent to Google) and even allowed Location Accuracy, as I've installed Play Services anyway and FLOSS locations did not work at all for me unfortunately.

I think this might be an issue on your side, as the almost exact same setup works on my side

How can I check these things? I'm seeing a "precise location" setting under each app's location permissions, and searching for the terms you mentioned did not pull anything up on my settings. If possible I'd love to avoid routing location through Google.

@Myzel394
Copy link
Owner

If you want to route your location through Google, you can do so by following these steps:

  1. Open the settings app
  2. Go to "Apps" > "Sandboxed Google Play"
  3. You should now be able to enable and disable "Reroute location requests to the OS"

You should also see a "Google Location Accuracy" setting here.

If possible I'd love to avoid routing location through Google.

I understand and it's totally your decision what to do. However, Locus might only work outside then. I know this isn't great and I'm not happy either, but there doesn't seem to be a good FLOSS location fetcher library available for Flutter yet. But if you do not need location access inside buildings, it should even be okay, because from what I have heard about others with a pure FLOSS phone, outside location fetching should work fine.

@duncanam
Copy link
Author

If you want to route your location through Google, you can do so by following these steps:

  1. Open the settings app
  2. Go to "Apps" > "Sandboxed Google Play"
  3. You should now be able to enable and disable "Reroute location requests to the OS"

You should also see a "Google Location Accuracy" setting here.

If possible I'd love to avoid routing location through Google.

I understand and it's totally your decision what to do. However, Locus might only work outside then. I know this isn't great and I'm not happy either, but there doesn't seem to be a good FLOSS location fetcher library available for Flutter yet. But if you do not need location access inside buildings, it should even be okay, because from what I have heard about others with a pure FLOSS phone, outside location fetching should work fine.

Ah! Got it. Yes- quite familiar with having to wait for GPS to find sats overhead inside buildings haha. Can live with that- thanks for explaining to me what is going on here.

Also I still owe you a test on your latest release, I'll try that next.

@duncanam
Copy link
Author

Well, pasting in the link still brings me to the "file upload" page. I am curious- do you have any examples of what it should look like? I was expecting a map, but maybe my understanding is totally off here

@Myzel394
Copy link
Owner

I am curious- do you have any examples of what it should look like? I was expecting a map, but maybe my understanding is totally off here

Yes it should normally show you a map. Could you inspect the website send me the console logs? I'll take a look what's wrong here.

@duncanam
Copy link
Author

duncanam commented Jul 4, 2023

@Myzel394 Huh, installed your latest update, went to the link in my browser, and looks like it indeed worked! (Scrolled to ocean for privacy here).

Is this the intended overall view you were wanting? Also, the browser wanted my location as well, is that to enable showing the end user how close they are to you?

@duncanam
Copy link
Author

duncanam commented Jul 4, 2023

Ah, just turned the phone sideways, looks like it has a lot more info. I wonder if there's a way to optimize for mobile browsers- for context, the reason I'm so interested in the browser view here is because I have family on iOS and friends that would be considerably simpler to just send a link rather than get the app on their end.

@Myzel394
Copy link
Owner

Myzel394 commented Jul 4, 2023

Is this the intended overall view you were wanting? Also, the browser wanted my location as well, is that to enable showing the end user how close they are to you?

Exactly! You do not need to allow it if you don't want to see how far you are away.

I wonder if there's a way to optimize for mobile browsers- for context

I currently do not plan to optimize it for mobile to be honest. I was developing the website more as the "desktop variant" for Locus. However:

I have family on iOS and friends that would be considerably simpler to just send a link rather than get the app on their end.

This indeed would make things much simpler. I will probably not optimize the website in the near future, because I want to focus on making the app more useful and more reliable, but I'll think again about optimizing the website!

Also, if you're interested, one person wrote me in an email that they managed to load the app onto iOS using AltStore. I haven't tried it out myself, but if you're interested, I can upload the .ipa file (similar to .apk on Android, but for iOS), and then you could see if you can install the app on iOS as well :D

@duncanam
Copy link
Author

duncanam commented Jul 4, 2023

I think your targets focusing near-term on Locus itself instead of Locus web are totally reasonable- if you plan to eventually push this to the iOS app store that may also make this much easier.

That said, displaying only the map when the browser detects a mobile browser I think is sufficient- the other information is neat, but min viable product could just be the map and dot.

@Myzel394
Copy link
Owner

Myzel394 commented Jul 5, 2023

@duncanam just so that you know, I have deleted your screenshot to avoid any location leaks.

That said, displaying only the map when the browser detects a mobile browser I think is sufficient- the other information is neat, but min viable product could just be the map and dot.

May I ask what browser you used? The map shouldn't work at all on mobile actually currently :O

@duncanam
Copy link
Author

duncanam commented Jul 5, 2023 via email

@maximbaz
Copy link

the reason I'm so interested in the browser view here is because I have family on iOS and friends that would be considerably simpler to just send a link rather than get the app on their end.

I would like to add another use-case, that is personally important for me - sharing my location just on a single occasion, to people who I don't normally share location with. It could be I'm meeting a friend in the city, and I want them to find me, or to show them how close I am to the agreed meeting point. It would be an overkill to ask them to install an app, just for this one occasion, but a link would be just perfect!

An app would confine me to using this awesome tool only with people who I often share my location with, but a useful mobile link (agree with @duncanam, just a map, a dot, and perhaps a button to open the latest dot in a navigation app) is more than enough as a starting point. And who knows, maybe some of my friends will end up installing the app and using it with their friends and family, after using the link!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants