-
Notifications
You must be signed in to change notification settings - Fork 42
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
Profile Creation #217
Profile Creation #217
Conversation
I think Basic node should be:
IPFS node should add:
Monitor node should add:
SSB node should add the SSB stuff. Perhaps rename Delete the option that prompts for user input, except for Custom. I think we can make all these decisions for users that don't choose Custom. |
Perhaps it should be an option since there are some modules which are in depended of the profile. IE: adhoc vs wifi or Yagdrissil |
I like @benhylau's profiles, but I think it might be nice to allow them to stack. For example, a user could choose to install Basic Node, along with IPFS Node. Not just install IPFS Node which also installs all the Basic Node stuff. This way it's more like lists of packages, which can be installed or not as the user wishes. But I agree with @darkdrgn2k that there should be some choice still, for the things not covered by any pkg list. So for example, if the user selects Basic Node |
Well basic node will probably be a prerequisite for all the packages. (bare bones)So thats probably a bad example. I would have a "custom" node that will ask you for each individual item to install or not (like we have now). I think the profiles are to spin up a quick IPFS | SSB | PI STREAM node without thinking much. thoughts? |
I see your point. I suppose the decision about whether there should be any user input at all once they select a profile is about whether we want the install to be one button press or not. I don't think we're at that point yet, I think it's still a good idea to ask about some things as @darkdrgn2k mentioned. |
I see it this way: First time user
Experienced user
@darkdrgn2k and @makeworld-the-better-one want something in the middle. I am not sure how many people are in the middle, and I am afraid by not serving the first time user, our feature loses its most important purpose imo. |
I understand what you mean, but we're not at a consumer product point where we want it to be super easy for users. If they don't understand they difference between ad-hoc and mesh-point they are going to need to come to our chat anyway when their nodes don't connect. It's a prototype, and I think making a one step install might over-simplify choices that should be more thought out by the user. |
I think we are. There is increasingly more people coming through our "doors" looking at the stack for a number of reasons. Although I warn them not to install everything, they do anyway. This is a good way to limit what they install while still leaving it wide open to anyone else who wants to build a custom node. |
I think it is more about a reference set up that will always 100% work. Currently we don't have that. Depending on what you select in one of many options, the result is different. Think of it this way... if someone comes to the room saying it doesn't work, we ask:
Making this first steps as:
That's much easier to come to an established understanding. Architecturally, |
I think one click install is the best way of doing it, But I suggest that maybe SOME options are independent of the profile. But maybe i can come to a happy compromise. Then
|
I think having a mode on top of a profile is really complicating things. The mapping from:
Is also super counter-intuitive. |
Problem is that the current reference hardware is broken - the TPLINK V1 noted in the readme is dead But about 60% of the people to come through the chat fail question #1 - What hardware, because they SKIP the part about needing a dongle to mesh. But i agrea, perhaps the decision between adhoc and meshpoint was NOT the best example. One thing we may want to consider is adding a profile for a "dongle less" setup where we use the onboard wifi with ad-hoc. This would open the doors up to more people, but requires more thought as we would loose the wifi access point which is the primary way into the device currently. |
All it would do is replace "" with "false" if selected. This would limit the complexity quite a bit, but i do agree another question may complicate things. Anyway reading over the thread, @benhylau seems to feel strongly about "less question" which has its benefits. Seeing how we would not loose any functionality (as the custom profile would STILL allow you to fine tune it as you can now) i say we keep it simple (no additional questions) and if needed circle back to it if we get any feedback. |
I wonder if an alternative UI is possible where there is a constant screen representing all the flags and their state:
Then you scroll between the Profile options of: Basic node And the flags change accordingly. For any selection, you can move cursor to table, and alter any of the flag states. Once anything is mismatched, you will automatically be in a This may be very difficult to implement. Just throwing the idea out, it may not be worth it for the use of this repo. |
I agree that switching to a setup that requires only a Raspberry Pi and nothing else, as baseline, may be a really good way to make this more accessible. Maybe mesh-point is not a "Basic node" configuration at all. |
That makes sense to me, but my initial worry was just that we might make things worse for new users, because we gloss over important design decisions with one click profiles. But I see their advantages as well. I like the install idea @benhylau proposed, it doesn't gloss over all the important settings that exist, but it also makes it easy to have defaults. I wonder how difficult it would be to implement, @darkdrgn2k. I also agree with the idea of a ad-hoc setup by default. Could that be included here? Or is it something for another day? |
two issues are -how do you access the pi if you don't have wifi ap -adhoc on rpi only supports 20mhz. so either we default all adhoc to 20 hmz then it will. mesh with other dongles to... or we remove the 40hmz option upon install but won't mesh with other adhoc modes I always thought we should drop 40mhz because of noise in t.o |
I support everything being dropped to 20 mhz, but I don't know enough about the cons of that. |
The two main cons I see are
I think the latter can be disregarded, as this a prototype and breaking changes with new versions should be expected. Could you expand on the former? Will 20mhz actually have a noticeable difference for the applications we use and testing we do? Also, to go back to an original issue:
Maybe our docs could encourage connecting the pi to your router with an ethernet cable, or using a TTY cable? Like just something to make it clear how to access it, and how an AP won't be available if they use ad-hoc. |
* Corrected IPERF3 port number * Initial install script * Update rules.v6 * Fix incorrect match of / during find * Fixed incorrect match of / in find * Opened port 8008 for ssb peering * Fixed ipv6 rules Removed duplication of rules Removed redundant CJDNS target * Updated meshpoint script to scan all interfaces Old mesh point scanned only phy0 and phy1, Update scans all interfaces, checks if they are wireless, determines the phy id, then checks for meshpoint. This way any phyx can be mesh point not just 0 and 1 * clearified meshpoint meaning in comment * Added missing accept keyword * Seperated and sorted ipv6 ports * Sorted ipv4 ports in firewall * Updated grammer in meshpoint comment * Added prometheus and grafana ports * Update FAQ.md * Deleted to avoid conflict * Patchfoo Module (#200) * Added patchfoo module * Added patchfoo to readme * added nginx to install * /patchfoo fix * Updated ssb-web-pi nginx script * Update and rename ssb-web-broadcast.service to ssb-web-pi-broadcast.service * Rename ssb-web-broadcast-service.sh to ssb-web-pi-broadcast-service.sh * Restored ssb-web-broadcast-service.sh * Cjdns iptunnel ipv6 (#223) * Added server side ipv6 addressing * Update cjdns-setup * correct ipv6 address definition * Added routing for ipv6 and ipv4 in client mode * Corrected paths and sudo * Updated status to include Yggdrasil and Cjdns * Removed unnecessary sudo (#226) Fixes #225 * Expire Password on Raspberry PI (#224) * Force password change after first reboot * Added check if password was already changed Fixes #198 * Update .travis.yml * Update install * Add HLS Player for IPFS Live Stream Repo (#228) Add HLS player from ipfs-live-stream Updated readme about player * Roll back change * Corrected incorrect binary path * Remove has password changed * Node welcome page (#230) * Create home page with list of service * Update process-stream.sh * Prevent ipns caching * Added multicast address for yagdrissil * Updated peer lookup * Update interface name * added ygg0 to nat * removed uneeded cjdns group * Lock port to specific value * Add yggdrasil to ports * Remove whitespace and version bump * shellcheck changes * Uninstall script for yaggdrasil * added WITH_YGGDRASIL variable * Added WITH_YGGDRASIL * remove of yggdrasil * correct path * Corrected spelling mistake * Corrected capitalization * Update install * Update status * Better way of finding the ipaddress for yggdrasil * Update status * Pi stream for SDR (#253) dded contrib file to compile and install SDR driver. Added image placeholder for audio only streams Added commented line to change from Pi Camera to SDR * Better regex * [Contrib] Captive Portal like lock for internet bound connection on an offline node (#229) * Make nginx install by default (#252) * Made changes according to issue's list * removed extra installs * Updated Yggdrasil Version * Node status screen (#249) * Added map code for index * Support Files * added cgi-bin config file * Install Map update * Create peers * missing " * Added yggdrasil map and reusable code * Split cjdns code into separate file Code cleanup * Whitespace cleanup * Whitespace cleanup * corrected lib path and +x peers-yggdrasil * move common css to head * Added node removal * Merge nginx move from upstream * Renamed Peers to peers-cjdns Corrected spelling * Renamed function to InitMap Fixed Syntax * Fixed formatting of LoadXMLDoc_x * Corrected peers to peers-cjdns * Added missing / * Added missing / * IPFS version bump (#261) * IPFS Bump Resolve issue #256 * Enabled gossipsub * Fixed version * Cjdns tunnel fix (#227) * Update cjdns service script to run cjdns-setup * Service reload daemon * Update cjdns-setup * Delete 50-cjdns.rules
Here is what i have so far: I left the following optional on all profiles WITH_MESH_POINT="" - Maybe they want adhoc instead, or they dont have a dongle
|
One concern: I don't think Yggdrasil should be automatically included, it should probably be a choice. Some people will only be using CJDNS and although for now CJDNS is mandatory, in the future we may see people wanting to only use Yggdrasil, meaning CJDNS would then be a choice. I would support something like |
I would do which routing engine would you like.. but I think Ben would rather less questions. anyway remeber custom is an option so you can pick. what you like like normal |
I agree with this, but we haven't made CJDNS optional yet, see #244. For now I would leave Yggdrasil as optional, and in the future CJDNS will be too. |
I think it's okay to have both installed for now. Asking which routing engine is not really a question that most first time user have enough context to answer. I think the profiles look fine. |
Will there be performances issues with double routing engines? I see your point about that being a difficult question for new users, but having both of them feels counter-intuitive to me. I don't feel strongly enough about this to be against this though, once you guys feel good about merging, I'll be glad to have profiles either way. |
Framework for creating groups in reference to issue #161
User interface supports both
Dialog mode
and text only mode
Each option can configure the modules as one of 4 states.
In issue the following profiles/groups where identified
3 Framework examples i put together are
Basic Node
PI Stream (or Mesh Stream)
And Custom
ask everything unless its set as environment variable
(no settings at all)
Question
Todo:
Once profiles are established we can do an environmental variable to set this like we do the modules