Jump to content

Michael

Administrators
  • Content Count

    2,411
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Michael

  1. Michael

    The EU server is down

    not sure what was wrong, but i restarted both of 'em, it seems to be back up.
  2. Michael

    Babble Chat Service

    Version 2.7.5

    292 downloads

    Request a on site trial: You can request a trial for your site. please contact me here. Please in the PM include what site you will be using it on and on average how many users will be using it at any given time. the demo is full featured, but it will expire 10 days after the key is issued. this is only good for one site and you can only request 1 demo, so if you request it and don't use it in the allotted time, i will not extend the trial. After Purchase: After purchase, go to Store->Purchases, you will need the license key and your email address that was used when purchased. After installing babble and activating the license, it can take up to 2 hours before use. Babble is a real time chat system using node.js and sockets. It uses less resources and doesn’t rely on long polling or interval scripts to check for new message. Babble is fully featured with those features laid out below. The application will come with the first 3/6/12 month(s) (depending on package purchased) of service. Requirements: requires IPS 4.2 as it uses clubs. A modern browser that supports web sockets. (Firefox/IE11/Edge/Chrome/Safari supports websockets. For mobile browsers, I will only be supporting Safari and Chrome). Babble and the chat service will require a purchase per site and a bi-yearly renewal agreement. If you purchase a copyright removal, Babble will occasional make a call home to http://codingjungle.com to validate the copyright removal key. Copyright Removal keys will need to be purchased for each purchase of babble if you wish to run it on multiple sites without branding. Features: Rooms: Babble comes with two default rooms that can not be removed. The “Babble” room is used by default for Babble, and the Widget Room is used by the “Widget” (the widget can be configured to use the default room). Each room has permissions that can be set like “View, Message, Whisper, Edit, Delete, Upload, and Archives”. Each room also has the ability to be configured independently of each other on uploads (what types and sizes), how many messages to show by default, rules to show before entering the room. Rooms can also have 3 bots they can configure (more on bots later). Rooms can be password protected. Uploads: Each room can be configured to allow uploads. If the upload is an image, the image will be “lazy loaded” and resized to fit the dimensions of the message area better. If it is a non-image upload, it will display a link to download. NOTE: Groups who can see the room, can also download and view images. Sounds: Babble comes with a collection of sounds for send, receive, entering, leaving and whispers. Users can enable or disable each sound as they see fit. The sound files can be replaced at any time in the ACP by pointing to the corresponding sound setting to the new location (this is to avoid future updates from overwriting your sound files). NOTE: due to some limitations in mobile OS’s (iOS and android) even if the sounds are enabled by the user, there is one additional step they must take to hear sounds on the effected OS’s. On mobile devices a Speaker Icon will appear, that will need to be activated to be able to hear sounds, this action must be done each page refresh. Whispers: Whispers are private messages that are sent in between users. They will open in a “tab” in the room and will flash when a new message is received if you aren’t currently active on the tab that is. Whispers only work inside the room, you currently can not “whisper” to some one who is not logged into the room you are in (at a later date this might change). Browser Notifications: A user can set how many new messages they receive in a room before a browser notification is triggered (or they can disable them all together). Currently these do not work on mobile OS’s, in the future I plan on adding notifications for iOS and Android. New Message Order: By default babble will order messages newest to oldest, for some users this might not be ideal, so they can reverse the order to oldest to newest. Any new message after this will honor the setting. Group Content: You can set a min. content count per room for each user group before they can send messages. You can use this feature as a reward to your members for participation on your site. Note: Messages made in babble will not increment content counts. Command Aliasing: you can set any number of aliases to existing/custom commands, this will help if you want to "localize" the commands. Stats - if stats are enabled for a room, you can keep track of basic stats like how many messages have been made in a room, the most online ever in a room, the current day's tally of how many have been in a room, and the top 5 users who make messages in a room. Archive - if enabled, a user can select to load messages previous made in the room. this is a group permission. BOTS: Babble comes with 4 bots, each serve a different function and are triggered in different ways. 3 of the bots can be configured per room, where the 4th bot can be configured to which rooms it sends messages too, as most of its settings are “global”. Hopefully Babble Bots can help you accomplish some pretty amazing things and enrich your users experience with babble. Time Bot: the time bot can be configured per room*. This bot can be configured to send different messages at different times**. You can use HTML/BBC in the bots messages. This bot runs from a task, so its HIGHLY recommend that you have your task configured to run as a cron job to see the best results. If not configured to a cron, this bot might not function properly. * you can configure this bot to store its messages in the database or not. Due to a technical limitation with node.js the bot is unable to check to see if there are any users in the room or not, so instead of having the chat history filled with messages from the time bot, they will “go away” on a page refresh. ** this is in minutes passed since the bot was configured, if you set a message to send every 10 minutes, then the first message will be sent 10 minutes after you configured the bot, and each additional message will be sent 10 minutes after this. Count Bot: This bot can be configured per room. You can configure this bot to send messages after x amount of messages sent by users*. You can also send different messages x amount of messages sent. You can use HTML/BBC and special variables(1) in your messages. * this does not include whispers sent or messages from other bots. Phrase Bot: This bot can be configured per room. You can configure this bot to send messages when a match to a word/phrase is made. You can have multiple matches for the same message or multiple messages for different matches. You can use HTML/BBC and specials variables(1) in the messages. Notifications: This is the bot that has a global configuration. This bot will send messages out when new content is posted to the supported applications*. Permissions are honored on these notifications, so if the user doesn’t have access to to view the area in question, they wont see the notification. This bot can only be configured to tell it which rooms to run in, the rest of its settings are global due to its nature. * IPS applications are the only ones support for notifications. In theory any application that uses the content item class should work, but I have only tested my own application that use this and they will work with it, so I’m pretty sure it will work with the other 3rd party application that use the classes. Babble has some API elements to it that will be document on my site later, so any application it doesn’t support, the application developer should be able to create a hook without much of a problem. (1) There are special variables that the count bot and phrase bot have access to, that can be used in the message, to show the name of the person who triggered, the bot’s name, and the match (this is for the phrase bot only). Bots can use commands, if it the command requires a the members name, use the special variable #member# Commands: Commands can perform special functions when issued. The commands can be issued thru the chat area (similar to how IRC does it). Some commands have group restrictions. You can add commands in 2 ways, in the ACP you can add basic commands , if you need more advanced functionality you can create a “command” file. Commands have been expanded greatly in 2.1, you can now "alias" them and the phrase/count bot can now use commands (the time bot can as well, but it wont have access to the #member# special variable). Command list: Announce – adds or removes an announcement to the room Ban – bans a user for a room. Unban – unbans a user for a room. BanList – Show’s who has been banned from a room. Ignore – Ignore a user in a room. Unignore – Stop ignored a user in a room. Kick – kick a user from a room. Me – an action command for a room. Mute – Mutes a member for everyone in a room. Unmute – unmutes the member in a room. Mutelist – shows a list of users who have been muted. Notifications – disables or enables notifications from the notification bot. Topic – adds or removes a chat topic from a room. Rules - Show the rules for a room if they have them. Password - sets a password for a room Purge - deletes all the existing messages in a room Stats - displays a rooms stats if enabled Rand - display a random GIF from giphy.com and many more! ** there is a 100 user soft limit placed on per site where babble is used. this limit isn't enforced, but if it becomes a commonality and a issue, it will be. if there is a demand for higher limits, i will create additional packages.

    From $65.00

  3. Michael

    Babble Self Hosted End Of Life

    After long consideration, I will be ending Babble Self Hosted in the near future. It wont happen immediately, I don't have a firm date, but I am looking at the second quarter of 2019 (sometime between march and end of may, probably closer to the end of may). The reasons i have decided to do this cause the support load for babble self hosted is incredibly high, due to the installation requirements, the amount of self host clients who have moved to the chat service, the general decline in sales for self hosted in favor of the chat service. Basically the chat service has more or less killed it off. People who have a self hosted purchase and current on their renewals, will continue to be able to download (even after the EOL has been reached). I will try to cancel any outstanding renewals at the time the product is EOL, but you should also check this at that time to avoid being charged for renewals. You will be allowed to run babble self hosted as long as possible, but i will not be providing updates (including bug fixes or new features). Any self hosted client who wishes, I can move you over to the chat service now or at the time, I will offer the first 3 months or remainder of your renewal (whichever is the lesser) and after that you will receive an invoice to continue to be on the service, just let me know if you want to do this (as well which package you want, 3/6/1 year terms). in the near future, i will also be offering a different packages for users who will exceed the chat services 100 user, so stay tuned for those. Regards, Michael
  4. Michael

    Strange New User Group Issue

    Changed Fixed In to Next Version
  5. Michael

    What notifications are sent out?

    only when someone else assigns you, the notifications should be working like they do in the rest of the suite. the person triggering them, should be excluded from 'em.
  6. Michael

    What notifications are sent out?

    Changed Status from Pending to Not a Bug
  7. Michael

    What notifications are sent out?

    notifications are sent out for the following: both (email and inline): new cards completed cards new comments Inline Only: Card history updates Assignment to card Removed from assignment new cards get sent everyone following the project, history and completed cards get sent to followers of the project and card. assignment/unassigned get sent only to that person, the rest get sent to just who is following the cards.
  8. Michael

    Not mobile friendly

    Changed Status from Pending to Closed Changed Fixed In to Next Version
  9. Michael

    Feedback on Strategem

    Changed Status from Pending to Suggestion
  10. Michael

    Stratagem

    Version 1.0.4

    12 downloads

    Stratagem is the next-gen project management app for Invision Community, based on the concept of kanban. Plan, manage, and deliver community projects directly from your Invision Community with the project management app Stratagem. Manage – Implement the project of your dreams using the project management tool set of Stratagem. Create unlimited projects with their own unique workflows. Move issues as they get resolved, or remove them into the special Trash Can. Collaborate – Add users to the project team, assign tasks to team members, and watch real-time updates happen as a team member updates a card or column. Automate – Use the built-in automation tools to auto-update issues when they move into a new stage of the project, by either assigning a new due date or assigning a new status. Control – Define the project leader to spearhead the project, manage the members, or restrict access to certain development stages. Use Stratagem to plan your next community project, organize a user meetup, implement site feedback, or launch a new initiative. It can also be used for lists, comparisons, or any other form of visual organization. Kanban Kanban is a visual approach to project management for incremental and continuous improvements. The emphasis is on continual delivery of small items without overburdening the development team. Kanban is a process designed to help teams work together more effectively, by allowing your team members to pick and choose the issues they would like to develop next. The Japanese pioneered the process of kanban for industrial management at Toyota. The visual design is similar to a whiteboard where users can move cards to show progress (kanban translates to “visual card” in Japanese). Features Create unlimited projects for online or offline initiatives, each with their own unique workflow, steps, and issues. The app features: Projects - Create unlimited projects with their own unique workflows, teams, and statuses. Columns - Organize your project by columns. Each column represents a step in the process. Cards - Create cards for your task. Each card is an issue to be progressed or resolved. Drag-and-drop ordering – Beautiful visual approach to moving cards in between columns. Statistics – Detailed charts and statistics to help you analyze the progression of your project, identify roadblocks, and resolve upcoming issues. Filters – The project can be filtered in the sidebar to identify cards based on criteria for status, completion, or assignment. Live Collaboration – Columns and cards will periodically update without the need for refreshing. As other members of your team create new cards and / or reorder cards, the changes will reflect on your page for team collaboration. Archive – If cards need to be discarded, each project includes a archive section to archive all cards which saves the cards for future reference. Stratagem is beautifully visual with drag-and-drop ordering. Stratagem is beautifully simple, with a design that any member can immediately figure out. Stratagem is beautifully powerful, with workflows and badges that can be custom built to your needs. Demo/Request Features/Make Suggestions: https://codingjungle.com/stratagem/projects/1-stratagem/

    $75.00

  11. Michael

    Cards

    You can create any number of cards to any column. Cards Creation: click on the add card button, fill it out (this is a ck editor instance, it supports rich text and IPS features such as @mention). There is no limit to how much text can be written here, but keep in mind its meant to be a "title" area for the card. To save a card, just click outside of the card and it will auto save. Assigning Cards: You can assign a card to up to 10 people (default is 6, but you can change this in project settings). You can also claim the card for yourself. Card Moving: you can move cards vertically in a column to reorder them, or drag and drop them to another column. Card View: if you click on a card, it will open up in a popup, giving you access to various things. you can add a description for the card, add a list, mark a card complete, set a due date, view the history of a card and/or add/read comments. Archiving Cards: there is no way to "delete" a card, but you can archive it. grab ahold of a card and drag it to above where the columns display, the archive area will open up, allowing you to drop the card there. you can retrieve a archived card at any time.
  12. Michael

    Columns

    You can create as many columns as you want, they will stack horizontally. Column Settings: in column settings you can change the column name and/or background color. note: background color will choose a contrasting color for text (white for darker colors and black for lighter colors). In the project settings, you can enable auto color, so when a column is created, the background color is automatically generated for it (you can still change it if you don't like the color). Automation Tab: here you can set what sort of automation can be done to a card when a card is added to the column (either creating it new or moving it to it). Restrictions Tab: here you can restrict the column to an existing team member or select directly from the team. when you restrict a column, then that user/group will be the only one to create new cards or move cards to the column. other users will be able to comment on the cards, and project owners permissions remain unaffected by this option. Columns Moving: You can rearrange columns in any order you like, grab a hold of the column's title area and drag them left or right. Column Deletion: You can delete any column you want, but if it contains any cards, the cards will go into the project's archive section. so if you accidentally delete an important card, you can retrieve it from the archive at any time.
  13. Stratagems permission work a bit differently that the rest of IPS. The goal of the permissions are to create a team and assign them appropriate permission regardless of group. When you first create a project, the only user who has any permissions would be the creator/owner of the project. they have all permissions, that can't be revoked or restricted in any fashion. The owner can then proceed to edit the project and add members/groups to the Team on the team tab. Here you will be able to give them permissions thru out the project. they each have descriptions, if you have any questions or want more detail on what a specific permission does, feel free to create a new support request.
  14. Michael

    Group Permissions

    Stratagem has very little permissions for groups, there is one important one that can be found in Members->Groups in the ACP. click on a group and click on the stratagem tab, you will find "Add Projects" this will enable the group to create projects for stratagem on the front end.
  15. Michael

    Installation

    Stratagem will install like any other IPS application. there are no other special requirements.
  16. Michael

    Feedback on Strategem

    its not really a members list, its a permissions list. the owner of the project is the "super administrator" they have all the permissions, then this list will show what groups/members who have permissions.
  17. Michael

    Feedback on Strategem

    its a bit tricky atm, but if a column is offscreen, you can take the card/column to the edge, it should "auto" scroll in that direction. so yeah, you can add cards to columns offscreen. the project owner is excluded from the list, as they are owner, its by design this blank. right now there is the "trash" area you can drag it too, there is currently not a way to permanently delete a card. the intent is to make the trash area sorta like a recycle bin found on a computer, that way if you mess up and delete a column, you can go fish out the relevant cards. when a project is first created, only the creator/owner of the project has any permission. all users have "read" permissions, unless the project is set to "private", then only the owner and the members (should rename that to team or something eccentric, i always liked the word gaggle. a flock of geese is called a gaggle, plus it sounds like babble ). anyway, only the owner and the "gaggle" will be able to see the cards or even the project. when you add members to the "gaggle", you can assign them permissions, which there are a wide variety to play around with. there will also be the option to add a group from IPS groups in the near future, and you can create "moderators" and such with this if you want. btw, the owner will always have all the perms, even if you add them to the "gaggle" and you can change the "owner" of a project. yes, if you delete a column they will go to the trash or you can move cards to the trash. cards at this time do not automatically delete out of the trash, might be something i add eventually. the trash has a max height of 500px, so it would overflow into having a scrollbar. they will "auto save". if you change the status, it will update to that status. due date is funky atm, sometimes it saves, sometimes it doesn't, so its "bugged". same with the "post" part that always seems to have an editor , its a "forever/always" editable area, to add things too. they do not get added to the search index for IPS search, there will be a in app search before release. new cards and such also do not add to activity stream. they should wrap or break word. i haven't imposed any artificial limits on them, for card "titles", i am thinking of cutting them off at X point and add the rest to the persistent editor inside the card. this way, you wont have this huge long card, that contains like the record from a congressional hearing and a congressperson decides to speak for 12 hours or something. it scales, the column area overflows with a scrollbar, cards can infinitely grow downwards (same with the amount of cards). as for "hundreds of members" i'm assume you are talking about either the members page or the filter options, that could be a problem if you want a thousand members or something. in reality, even tho it can prolly scale to those ridicoulas numbers, but it is imho that you might need project management for your project management if they need to get that high. so creating a "catch" all project might not be the best move, but having a half dozen or more projects, with each project with a certain limited scope would probably be the better way. that way everything in project A is related to project A. eventually this will be possible this will be a project setting in the near future, where "completed" cards will auto hide after x amount of days after they are complete. this is why there will be a filter to show completed. its intentional, might switch to headers vs tabs for the "project" general settings. in the "quick stats" there will be a chart for active (cards that have no due date or haven't reached their due date). it also will have an impact on the "project status" guestimator. there will be more improvements for this feature before and after release. ⚠️ it will show this icon, but it will be red, next to where where the checkmark for "complete" shows up. not yet implemented. pin and feature are out, as the cards order would be their "priority" so to speak. report cards will be coming, and project/column creation, ii could see a potential for abuse, so adding them to report center might be worth an investment. yeah the UX needs serious work was thinking of making a Post 2 card option, will prolly extend this to other parts of the suite. this is more or less how the "sub cards" will work i was thinking of adding in a poll option, but a up/down vote will prolly be a better idea. maybe in the future. move a lot of the suggestions to cards and tried to comment/answer everything. i might've skipped over something here and there.
  18. Michael

    Suggestion: Add notification to moderator

    Changed Fixed In to Next Version
  19. Michael

    Downloads Plus

    Version 2.3.0

    54 downloads

    GENERAL DESCRIPTION DownloadsPlus takes the default IP.Downloads and propels it to the max! With a slew of new features, additions, and enhancements, it transforms your Downloads application into a one-stop shop for informational details, client support, and customer service. DownloadsPlus provides awesome new features that expand your Downloads application. No more support tickets in IP.Commerce. No more questions and topics in IP.Board. No more bugs in a custom tracker in IP.Pages. No more searching for questions, problems, and tickets in multiple areas. DownloadsPlus bring all of these resources together into a single spot directly accessible in IP.Downloads, which allows you to efficiently and intelligently manage all of your files directly from the file itself! Buy the new DownloadsPlus application and supercharge your Downloads app! Do you want to empower your members to ask questions and receive detailed answers from other users before buying a file? Do you want to provide better service by building a support system into the file manager? Do you want a clean layout that packs all of these enhancements plus the default IP.Downloads information into a tighter space for mobile efficiency? DownloadsPlus is designed for communities with an extensive file system that sell or distribute files and want to find a smarter, faster, and more efficient method to support users! FEATURES DownloadsPlus contains multiple new features in both the ACP and front-end. Some of its major new features include: Support System - Build a support ecosystem around each file, which makes it simpler and easier to provide immediate assistance to users. The support system contains advanced features such as auto-resolve, status updates, and private / public tickets. Q&A System - Build a question and answer system dedicated to each file, so members can ask questions before buying. Other users can answer the question or identify that they have the same question too. Admins can always control the answers (if incorrect or misleading) by deleting answers. Tutorials - Build tutorials for each file. New Features in the Downloads ACP setting: Auto-Resolve Time Status Update settings Enable Stores Limits for "Author's Other Files" Dplus Mailer Features added to each download's category ACP setting: Enable Questions Question Permissions Only owners can answer questions Enable Support Require purchase before supporting Support Permissions Tab order Enable Tutorials Features added to each file's front-end: Details on its own tab Changelog on its tab Q&A is a new tab Notifications when answered Multiple answers "I have this question too" by other users Remove question / remove answer Support is a new tab Create new support report "Click and hold" to edit support title Version requirement on support tickets Follow and Notification preferences Public or Private tickets Filters to show only tickets you desire Tutorials File Author can create Tutorials for their file Reviews on its own tab visual stats Comments on its own tab Author's Other File (shows a carousel of author's other files). All of these features natively integrate with your existing permissions, so it works seamlessly with your IP.Downloads. ADVANCED FEATURES Geek out with other cool features in DownloadsPlus: Auto Resolve - An advanced feature of the Support system. Auto-Resolve is a setting to automatically close a ticket in X days if no response. For example, if you have a support ticket where the last response is from the downloader and X days have transpired, the ticket is automatically marked as "Closed." If you have a support ticket where the last response is from the uploader and X days have transpired, the ticket is automatically marked as "No Response." Statuses - An advanced feature of the Support system. Statuses can be customized to provide a built-in tracker for issues. HOW TO INSTALL Please install or update like any other application. Navigate to ACP > System > Site Features - Applications. Click on "Install" Select the TAR file and install. REQUIREMENTS This file requires IP.Core and IP.Downloads. PHP 7.0+

    $40.00

  20. Michael

    Babble error

    Changed Status from Closed to Work in Progress
  21. Michael

    Strange New User Group Issue

    i haven't been able to reproduce it, but i'll try again as there is another bug that i was going to look into for 2.7
  22. Michael

    Strange New User Group Issue

    Changed Status from No Response to Work in Progress
  23. Michael

    Babble error

    i don't believe this is a babble issue, as this is the only thing i have in baseJs() in my dispatcher hook: protected static function baseJs() { parent::baseJs(); \IPS\Output::i()->jsFiles = \array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('io/socket.io.js', 'babble', 'interface')); \IPS\Output::i()->jsFiles = \array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('front_babble.js', 'babble', 'front')); } i don't call language() in it. other than babble_hook_ipsDispatcherFront appearing in the trace log, is there any other reason you suspect babble is causing this?
  24. Michael

    Blank Page When Saving Menu

    Changed Status from Pending to Closed Changed Fixed In to Next Version
  25. I had cobbled together a guide awhile back on how to do this, a bit has changed and some of the guide was inaccurate or had unneeded steps. Requirements: you will need to be up to date with windows 10, older versions of windows 10 does not have WSL. Make sure you windows is fully up to date, and you are comfortable with working with the command line or wish to learn more about the command line. other than that, enjoy the guide! So what is WSL? Well, basically it's the userspace from a linux distro added to win10 to allow you to run native linux apps (currently only CLI, some have gotten GUI stuff to work, but that is beyond the scope of this guide). Who is it for? Anyone really. I am a web developer, and one of the reasons i used linux for over 10 years as my daily driver, was due to how poorly a wamp stack performs compared to a lamp stack, and the differences you will encounter in how the two platforms operate. example: windows is a case insensitive OS, so windows doesn't see a difference between MyClass.php and myclass.php, this could be a problem with a case unaware autloloader on linux or mac os x. so it could lead to a unnecessary refactor if/when you deployed to linux/mac os x. I like this alternative mainly cause I migrated to a UHD monitor and use lower resolution monitors in the setup as well and linux has extremely poor fractional scaling (with the exception of KDE), windows scaling isn't perfect, but it is a lot better than any of the linux DE's atm. there were also other issues i ran into as well, as i recently also built a AMD Ryzen system, and ryzen's performance in linux isn't stellar, so least to say, Linux has several issues right now, that make it difficult for me to use well. So why should I use this over wamp or a linux setup? Don't get me wrong, apps likes WAMP/XAMP/MAMP are fine applications and if you are happy with those, then you shouldn't rock the boat. I do a lot of work outside of php with languages like python and technologies like node.js that don't perform very well in windows, they are actually quite cumbersome to install and to use in windows. So if you do more than just write wordpress plugins i suppose, then you'd prolly don't need this, but if you are curious how much greener the grass is, continue to read. so why should you use WSL over a full lamp stack? well the simple answers for me would be convenience. like the aforementioned issues i had running linux now days, this is sorta a meld of "best of both worlds". The Guide: Okay enough backstory, lets get started. First thing you will need to do is enable the sub system, you can do this a few ways. the fastest way imho is to start up a powershell in administrator mode (click start, type in powershell, when it comes up in cortana, right click on it and choose to run as administrator. if you have UAC enabled, it might prompt you if you wish to continue): Once it open enter this: (note: you can copy it, either right click on the powershell window or ctrl+v to paste it) Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux Press enter, it will do a few things, and then it will prompt you to restart. to continue you need to restart (did you really expect anything else? it is windows after all ) Now the Fun! Now once you are back after the reboot, you should be ready to install a distro. Now microsoft made this really simple, they put them in the app store. so open up the app store and search for 'linux': Click on "Get the apps" (if you don't see this, if you scroll down, under APPS, you will see the distro list). you should see this: There are a few distro's to choose from here. This guide will use Ubuntu, but in reality there really isn't any other choice IMHO. (i get this one a lot, "mike, how are you a ubuntu user? its for noobs and you know so much about linux!?", boggles the mind doesn't it? not really, Ubuntu is still more or less debian under the hood, it just has more recent packages and i think put together a bit better than debian and the other distro's, but any way, please refrain from ubuntu hate) any way, click on ubuntu: Now decision time, this guide will proceed almost identically regardless of your choice here. you can click install here and it will install ubuntu 16.04 LTS, however if you look below, you should see "people also like" and one of the options there, should be ubuntu 18.04 LTS. I highly recommend ubuntu 18.04 LTS as it is newer, and will be supported longer than 16.04 LTS, but the choice is yours. Let it install, once it is install click open. you will be greeted by a bash prompt, it will ask you for a username and a password (It should be noted as this has driven linux noobs insane, when you type in your password on the CLI, it will never indicate anything is being typed, so if you are expecting something like ****** to show up, it wont. ). Once you are done with that you will see a prompt like this: well it wont look exactly like this, but you can make it look like this here alright we have Ubuntu installed, first thing we are going to do is add this ppa (which will have the several versions of php available and updates for them when they come out), enter this into your bash prompt: sudo add-apt-repository ppa:ondrej/php this will add the ppa, next we are going to add the webmin Repo for ubuntu, next enter this command: sudo nano /etc/apt/sources.list this will open the nano editor, using your arrow keys, go all the way to the bottom and add this on a new line (you can copy from here and use right click to 'paste') deb http://download.webmin.com/download/repository sarge contrib to save, ctrl+o (saves) and then ctrl+x (exits), next enter these commands: wget http://www.webmin.com/jcameron-key.asc and then: sudo apt-key add jcameron-key.asc and finally: sudo apt update (this last command will update the package managers database). Alright if you have made it this far, you have completed all the EASY stuff (yes, you have permission to roll your eyes). now the stuff that follows, we will be installing and configure Ubuntu with a LAMP stack, plus with webmin. alright, lets install everything we will need: sudo apt install apache2 mysql-server php7.2 php7.2-xml php7.2-zip php7.2-mbstring php7.2-curl php7.2-mysql php7.2-gd php7.2-imagick curl webmin this can take awhile, webmin takes awhile to install, so go watch a show or play solitaire . once it is done, it will return the prompt. so everything is installed, so next we need to start everything, in bash, enter this: sudo service apache2 start && sudo service mysql start && sudo service webmin start (it will prompt you for your user password). it should start up all the services, you can check in your browser by going to http://localhost and you should see something like this: now check if webmin is running, it will be the computers name (the part in bash prompt after your username) on port 10000, so it would be something like this: https://desktop-jlddkqm:10000 or https://localhost:100000 (don't log into it just yet, just make sure it is running, you should see a login prompt). you will be told the site is unsafe cause it doesn't have a cert, you can make an exception or edit webmin's config to change this: sudo nano /etc/webmin/miniserv.conf find: ssl=1 and change it to: ssl=0 now save and exit (ctrl+o then ctrl+x). restart webmin: sudo service webmin restart (sometimes this doesn't work, and you need restart your computer, i am not sure why it does this, if you restart, don't forget to start up all the services again when you open up bash). if you installed ubuntu 18.04 or installed mysql-server 5.7+, you will need to do this: In mysql 5.7, you are no longer able to use root to access your database, so you will need to setup another user to do this, in bash: sudo mysql -u root -p it will prompt you for the mysql root password, which at this point should be empty, so just hit enter, if that fails, enter your user password. this will enter the mysql prompt, do the follow, making changes where it says username and MYPASSWORDGOESHERE: GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'MYPASSWORDGOESHERE'; hit enter, next: FLUSH PRIVILEGES; hit enter, and finally: quit hit enter, it will return you to the prompt. optional (you can instead choose to create a vhost to where you want your document root to be): next we will link a folder from our C drive in windows to a /var/www/html in ubuntu (as you can't edit files on the linux fs with windows editors, something about permissions). now in WSL any of your drives are auto-mounted in /mnt, your C:\ drive will be /mnt/c and any other drive will be mounted under their drive letter. we will be assuming your document root for your web app is C:\myapp, so we need to get this linked to your servers document root folder, which is /var/www/html. to do this, we will create a symlink: sudo ln -s /mnt/c/myapp /var/www/html this will now be accessible via http://localhost/myapp/ okay, that it is it. apache is running, webmin is running, and everything is installed to get your local dev environment running. this isn't the end of the guide, just if you want, you can stop here and go about configuring the rest on your own. however if you want to do some more things, keep reading. Extra: Start With Bash: I like adding stuff to my .bashrc, so when i start the bash prompt, everything starts up for me (after enter my password, but you can set it up where sudo doesn't require a password, but use at your own peril). in the bash prompt: nano .bashrc using the arrow keys, go to the end and start a new line. add the following, each on their own line: sudo service apache2 start sudo service mysql start sudo service cron start sudo service webmin start save and exit (ctrl+o and then ctrl+x) i like adding cron here, as there are times i need to test out task, and setting a cron is a lot easier than trying to figure out the voodoo magic that is windows scheduler. but when you first open up bash, you will be prompted for your password, and then the services will start. Module userdir: I really like this module, allows me to work from my home directory, from a folder called public_html and accessible from http://localhost/~username/. first thing to do is enable the module for apache: sudo a2enmod userdir now we need to tell php it can parse php in the home dir: sudo nano /etc/apache2/mods-available/php7.2.conf find: php_admin_flag engine off comment it out, so make it look like this: #php_admin_flag engine off save and exit (ctrl+o then ctrl+x). restart apache: sudo service apache2 restart create the public_html folder in your home directory: cd ~ takes you back to your home dir. mkdir public_html creates a folder called public_html in your home dir. ln -s /mnt/c/webapp ~/public_html will link your webapp folder from your C:\ drive to ~/public_html/webapp. you will be able to access it via url: http://localhost/~username/webapp. as you can see, there is potentially a lot of work that goes into setting up WSL for a LAMP stack. you might think it isn't worth it, and it might not be for some, but for others it will be, as it will open up more possibilities, with the technology and applications working in a native environment. btw...why did you have us install webmin, you didn't do anything with it! you are right, i didn't use it in this guide. you can log into it now, and you can configure your webserver from there. i wanted to show you how it is done on the CLI, to get an appreciation for the software, but with webmin, it will allow you to do configuration with a GUI for apache and php. so if you don't see any need for webmin and are comfortable with the command line editors, then you can uninstall it or not install it to begin with. if you have any questions or comments, let me know below!
×