EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   EQEmu Operations Center (https://www.eqemulator.org/forums/forumdisplay.php?f=679)
-   -   EOC BETA Launch (Developer's Tool) EQEmu Operations Center (https://www.eqemulator.org/forums/showthread.php?t=36662)

Akkadius 03-18-2013 10:35 AM

EOC BETA Launch (Developer's Tool) EQEmu Operations Center
 
All,

Some of you have anticipated this for a longer time than it should have been necessary.

Trevius and I have worked on this project for many months and it has been a side project that sometimes got dropped for a period of time, time to get it off the ground in BETA

That said, I've also been involved with high level web development outside the realm of EQEmulator which has also reflected in being able to execute very smooth and efficient work with this tool, using PHP/AJAX/Javascript/HTML/Mysql to deliver a rich hosted tool solution platform.

EOC TEASERS HERE: http://imgur.com/a/xgnVo

What is EOC?
EoC (EQEmu Operations Center for Development) in vision was meant to be a few things in essence
  • A hosted solution so you do not have to install ANYTHING
  • A web front-end tool for EQEmu Server development
  • Built for custom server developers in mind
  • Tools built to cut down on the development time and process
  • Tools that are built to not break based on different database schematics
  • Make rich tools available without the need to learn to setup a web server and configure a bunch of stuff all just for one server

What tools are available now?

As of right now, there are about 3 original tools available and they all are very nice. These include:

Item Editor: (Created by Akkadius)
  • Detailed Item Search (Based on Allaclone code - I want to rewrite this but it works)
  • Item Tooltips for quick display of information
  • Over 20 sub tools (Class selector, Race Selector, Icon Viewer/Selector, Weapon Viewer/selector, Item Price Selector, spell selectors etc.)
  • Nostalgic Sound effects
  • Music - Can be toggled off

Item Editor Features to Come:
  • Automatic item statistic scaler - Will take in a few arguments (Level, Class type (Silk/Leather/Chain/Plate), and item content type (Solo/Group/Raid)) and automatically suggest values for your statistics. This will be able to be generally + or - a percentage on top of suggested values, giving you much less thought in mathematically scaling items
  • Some fields could still use sub tools
  • Copy Button at the top of an item (Similar to Georges) - Now to copy an item all you have to do is reassign an ID

Task Editor: (Created by Trevius)
I must say myself that this tool is awesome, I can get a task together in minimal amounts of time using this great tool that Trevius put together.
  • Built all with AJAX requests to allow ease of use and fast task creation
  • All you would ever want in a Task editor

Zone Tools: (Created by Akkadius)
I put this small tool together with the necessity of being able to copy zone data from one version to another without issues. The Georges editor one was great but I would find out that it would bomb on some zones and not sure why.
  • Thousands of lines of code were written in this one to give a really great zone copier for ease of creating a new zone with the base of another version of the zone
  • Zone Importer: Yes, I wrote this tool to also be able to establish a 2nd Database connection and import content from it, this is really almost too hot to share with anyone but I guess I'm a nice guy and want to see this community thrive :P
  • You can delete entire zone instances if you need as well as copy, you can keep original ID's or create new. All the options are given

Ok, so you have only 3 tools? Umm that's great?
- Well, you should find the tools here alone well worth your time, but if that really isn't enough for you, the PEQ Editor is wrapped inside this tool which requires you no setup whatsoever.
- To use the PEQ Editor tool, you will just need to establish a database connection initially like you did with the rest of the tools and you will be ready to go

http://eoc.akkadius.com/AC/eoc/images/PEQ_Logo.png

Ok how do I get started Mr. Akkadius?
Well, this is the best part really, or the worst depending on what kind of a tight ass you are.

Right now, the only way to connect is going to be through 'Manual DB Connect' which honestly is GREAT, I will further explain my plans for this in a bit.

Manual DB Connect
  • To start, go here -> http://eoc.akkadius.com/AC/eoc/images/eoc-fd.png
  • You will need your Mysql server open to the world, I suggest using NOT root and a different user with a stupid LONG password
  • You will need your Mysql Server (IP, DB Name, DB User, DB Password), the validator will not let you pass until EOC can establish a connection with your server. Once you have done this, YOU ARE READY TO GO!

So using this tool you can edit your server within a matter of seconds without having to install a damn thing and it is actually extremely fast. The speed is going to vary on your MYSQL Servers connection and speed.

Is this secure?
Yes, it is about as secure as it's going to get, only Trevius and I oversee this project and we both place our integrity above ourselves as without it we would not hold the reputations we do.
We don't log database logins, and if you're really that concerned, use a test database or don't use this at all. I guarantee you will want to use this once you try it.

What if I wanted to let other developers use this tool on my server but not give them my DB info?
NOT IMPLEMENTED - BUT! - My immediate goal is to build a user system in which you can register a server and create 'developer' users in which you can assign permissions to which tools they can use and what they can do with those tools in regards to development as a server.

This would be ground breaking in the respect that there is always an issue to let strangers over the internet who seem like they want to help you but end up screwing you when you gave them too much handle too quick, this would resolve all of that.

Are there bugs?
LOL, probably. But most of it should be pretty smooth to boot. Please post any findings here and I or Trevius will address them when time permits.

Akkadius 03-18-2013 10:36 AM

Creating a MySQL user: (By JSR)
If using Navicat;
- Click 'User' on the main ribbon
- Right click 'root@localhost'
- Choose 'duplicate user'
- In the username field, change it to something preferable to root_Copy (or keep it if you think it has a nice ring to it)
- In the host field, replace 'localhost' with '69.168.254.244'
- In the password/confirm password fields, enter a secure password. Note: A long password (e.g. dogsandcatslikerawfishfordinner) is exponentially more secure than one with uppercase, lowercase, numbers, and symbols while also being much easier to remember
- Under the advanced tab, change 'max user connections' to 1
- Under the server privileges tab, uncheck the privileges 'File', 'Process', 'Drop', 'Shutdown', 'Super', and 'Create user' (there may be others worth disabling)
- Click Save

If you're using mysql command line you're either a) clever enough to do this part by yourself, or b) you should really get a copy of Navicat as it will improve your quality of life.

To create a filewall rule:
In windows firewall
- Click new rule
- Select 'Port' and click next
- Select 'TCP and specific local ports', enter 3306, click next
- Select 'Allow the connection', click next
- Select the appropriate network type ('domain', 'private', 'public'). This will typically be private but if in doubt tick them all. Then click next
- Enter a name for the rule (e.g. Incoming Mysql), click finish

For extra security:
- Refresh the list of rules (F5)
- Locate the new rule (e.g. Incoming Mysql) in the list, right click and choose Properties
- Under the scope tab, find Remote IP address and select 'These IP addresses'
- Click Add, select 'This IP or subnet'
- Enter 69.168.254.244
- Click Ok, and then click Ok again

How does EOC Work from a network perspective?

http://i.imgur.com/ZvxLMB4.png

Secrets 03-18-2013 10:54 AM

Quote:

Originally Posted by Akkadius (Post 219580)
This is a placeholder post

You sit on a throne of lies, that is no placeholder post.

No, I'm joking, it's a pretty nice tool, and more people should use it.

BlackSunGM 03-18-2013 10:58 AM

Looks really nice, cant wait to try it out!

Weldarr 03-18-2013 11:09 AM

Just want to say, I spent a good hour reviewing it and playing with it and this is probably one of the best editor tools that I've ever used!

Many thanks to all the work that went into this.

- Vaion

Akkadius 03-18-2013 12:27 PM

Quote:

Originally Posted by Weldarr (Post 219584)
Just want to say, I spent a good hour reviewing it and playing with it and this is probably one of the best editor tools that I've ever used!

Many thanks to all the work that went into this.

- Vaion

Thanks for the kind words Vaion.

Looked forward to comments/suggestions and any bugs.

I will also determine the next feature to be implemented after I've had some feedback

Gregk 03-20-2013 01:47 PM

Excellent! Thank you for sharing.

jimrocken 03-20-2013 08:36 PM

tried playing with this... but because i'm behind a router it won't let me through :( so looks like i can't play with the new tool... any chance you can provide the source for those of us who have lan servers?

lerxst2112 03-20-2013 08:42 PM

Quote:

Originally Posted by Akkadius (Post 219578)
[*] You will need your Mysql server open to the world, I suggest using NOT root and a different user with a stupid LONG password

If you're behind a router you're gonna need to open a port for the database connection. Your server doesn't need to be publicly accessible, but your database does.

Akkadius 03-20-2013 09:49 PM

Quote:

Originally Posted by lerxst2112 (Post 219719)
If you're behind a router you're gonna need to open a port for the database connection. Your server doesn't need to be publicly accessible, but your database does.

When I phrased 'Mysql Server' I was referring to the service that listens on port 3306 by default, not necessarily an entire server and all the services that may pertain to it.

Yes, you will need to open PNAT forwarding table for 3306 if that is the port you are using to listen on Mysql (default).

It may have been naive of me to assume that anyone who is actually running a server knows enough to know what it means to have a service opened to the world and that through setting up a server they have learned to forward ports for services.

jimrocken 03-20-2013 10:21 PM

The problem I'm having is I use a public pay for use hot spot so I can't open ports

Dunge0nMastr 03-21-2013 12:28 AM

This looks incredible. Great job guys. Been drooling over this ever since Secrets gave me a little peek. I will be putting it through its paces when i get back from PAX monday :P

Great work guys!
-Bront

sorvani 03-21-2013 12:57 AM

Is the webserver IP static? so that I can restrict the port forward to your IP address?

Akkadius 03-21-2013 01:01 AM

Quote:

Originally Posted by sorvani (Post 219727)
Is the webserver IP static? so that I can restrict the port forward to your IP address?

Yes, it's a static and I don't plan on changing it anytime soon.

I'm going to be moving the server itself to another rack but I should be able to route all of the statics over to the new rack once that time comes. All irrelevant detail to you, lol.

Akkadius 03-23-2013 02:20 AM

Item Editor:

I've spent about 3 hours reworking grouping code for the Item Editor so that visually a developer can easily identify with section groupings and quickly edit the fields they find relevant. Because the entire editor is built on array iterations (literally all aspects) it made it a little bit more difficult to add selective grouping for fields but now that it is in place it is easy to move the format into other display methods.

All merely visual changes. Yeah it's small but I launched the BETA with default array iterations and all of the fields were clumped together and didn't make much sense beyond some of the sub sections.

Next Additions:
- Copy Button - Similar to that of Georges tools
- Statistic range scaling - Scale statistic ranges based on a min - max
- Entire item scaling - Give three criterion (Level, Class type [leather/cloth/chain/silk], Content Type [Solo/Group/Raid]) and it will spit back out AJAX automatically suggesting and changing fields automatically to scale an item to ideal and mathematically calculated statistics before tweaking.

I'm not opposed to any suggestions regarding the tool as I've not really treated it as finished but is still yet very functional and useful for anyone looking to create items easier.

Some pictures of changes just so people have something to look at, apparently my print screens turned out big as hell. I don't care right now so you can deal with it or log into EoC yourself. :)

http://i.imgur.com/euA7bZO.jpg
http://i.imgur.com/VB6GPy2.png
http://i.imgur.com/CmvZWj7.png

Burningsoul 03-23-2013 04:47 AM

No worries on the large screengrabs - this looks AMAZING. I'll get you some feedback after getting my DB synched with it. Thank you for the incredible work put into this - it'll help out many a noob server op.

Akkadius 03-23-2013 05:07 PM

Quote:

Originally Posted by Burningsoul (Post 219786)
No worries on the large screengrabs - this looks AMAZING. I'll get you some feedback after getting my DB synched with it. Thank you for the incredible work put into this - it'll help out many a noob server op.

Not even for noob server ops, I wish I had this when I was actively server developing.

Akkadius 03-24-2013 04:16 PM

I'm going to be creating a local database reference for the EoC platform so I can implement users, allow users to create logical 'servers' and then they can create developers to work on those servers.

So if EoC is behaving a bit whack, that's because I'm developing on the BETA production.

Akkadius 03-31-2013 09:56 PM

Made a fix to the Item Editor today, apparently when I made the last fixes I broke the miscellaneous fields from even showing which messes up the Mysql query save generation.

xplodr 05-24-2013 02:05 AM

I can't get EOC to connect to my database. I type in everything to login and i have forwarded port 3306 to my servers IP within my network yet it tells me it cannot connect. I'm wondering what i'm doing wrong. In the IP:Port box I type my Ip address then : and then the port 3306. The the database name which I have left as peq then my username and password. I don't understand what i'm doing wrong.

Akkadius 05-24-2013 02:17 AM

Quote:

Originally Posted by xplodr (Post 221106)
I can't get EOC to connect to my database. I type in everything to login and i have forwarded port 3306 to my servers IP within my network yet it tells me it cannot connect. I'm wondering what i'm doing wrong. In the IP:Port box I type my Ip address then : and then the port 3306. The the database name which I have left as peq then my username and password. I don't understand what i'm doing wrong.

Are you using root?

Because your setup may have included that root cannot be used from outside connections period.

You may have to setup another user and use that user that can accept connections from anyone and then give that user privileges.

xplodr 05-24-2013 02:37 AM

How do i set up another user?

Akkadius 05-24-2013 02:43 AM

Quote:

Originally Posted by xplodr (Post 221110)
How do i set up another user?

Easy to do in Navicat, you go to Manage Users. Otherwise if you don't have Navicat, you have to use:

https://www.digitalocean.com/communi...sions-in-mysql

EDIT: Instead of doing localhost, you would do % to signify it would come from anywhere. Or you could lock it down to my server and have @69.168.254.244

xplodr 05-24-2013 03:48 AM

I did what it says and as far as i can tell the users were created however it still won't let me login

xplodr 05-24-2013 04:00 AM

Also, I downloaded navicat but I can't figure out what to do with it when I have it up. Like how to load the database or anything.

xplodr 05-24-2013 04:04 AM

Whenever I try to connect to my server through navicat it also times out

Akkadius 05-24-2013 06:53 PM

Quote:

Originally Posted by xplodr (Post 221116)
Whenever I try to connect to my server through navicat it also times out

Can you give a bit more detail as to what you are doing when you try to connect to your server?

xplodr 05-25-2013 01:53 AM

When I click the connection button upon opening navicat and use my personal IP address and port 3306 and fill out the rest of the connection with the username and password for MySQL it fails to connect. Could it be a firewall issue? usually my firewall asks me to unblock something if it detects something but it never asked.

xplodr 05-25-2013 04:47 AM

I finally got it to work! I think it was my firewall, I turned it off and logged in like a charm. Now I have some questions about how to use it haha. Is there a way to remove no trade from all items and instead make all items attunable?

xplodr 05-25-2013 04:56 AM

Or set up a sort of firiona vie ruleset?

Nerdgasm 05-28-2013 11:46 PM

Code:

Cannot connect to server!
Cannot connect to database "peq"


Is the error I get, all information is typed right.

Akkadius 05-28-2013 11:57 PM

Quote:

Originally Posted by Nerdgasm (Post 221206)
Code:

Cannot connect to server!
Cannot connect to database "peq"


Is the error I get, all information is typed right.

Are you NATing your server? It will need to connect to your external IP (Public).

For an open public scenario (Public Address right on server) you simply need to enter your Internet facing address in the manual DB connection and your database info.

For a NAT private network scenario, you WILL need to forward ports (3306) in order for EoC to straddle your database :)

I made a drawing for this somewhere...

http://i.imgur.com/ZvxLMB4.png

Akkadius 05-31-2013 08:21 PM

There's been quite abit of use of this lately. I'm waiting to hear what people think of it so far.

Cylex 06-02-2013 09:43 AM

The tool is great, and the Project Editor is amazingly useful.

There is a minor thing I noticed; when using it to create a new loot drop, it will not process the request, as there is no probability field.

ZionPhoenixGM 06-27-2013 02:31 PM

Disregard got it. was using the wrong IP

Bodmingaol 07-03-2013 02:26 AM

Never mind....lol I figured it out..../facepalm

Thanks,

Bodmin

jsr 07-04-2013 04:46 AM

this looks great, but I can't seem to get a db connection working. Here's what I've done;

1) Added port forward rule to router for TCP port 3306 to my mysql server IP

2) On the mysql server (windows 7), added firewall rule
- service MYSQL
- port 3306
- scope 69.168.254.244

3) Added a mysql user with host '%' and flushed privileges


Eq operations reports a connection error. Am I missing a step?

trevius 07-04-2013 06:29 AM

Quote:

Originally Posted by jsr (Post 222195)
this looks great, but I can't seem to get a db connection working. Here's what I've done;

1) Added port forward rule to router for TCP port 3306 to my mysql server IP

2) On the mysql server (windows 7), added firewall rule
- service MYSQL
- port 3306
- scope 69.168.254.244

3) Added a mysql user with host '%' and flushed privileges


Eq operations reports a connection error. Am I missing a step?

Are you able to connect to your DB from your PC using a tool like Navicat with the same settings you are trying to use for EOC? If you try using your external IP for the connection, I think that should verify if you are setup to allow remote connections.

I don't use MySQL on windows too often, but I believe there is a setting when you install it which lets you enable remote connections. I don't know how to adjust that after installing it offhand, but you may be able to just run the MySQL install again and change that setting this time through. Make sure to backup your DB before trying anything like that just in case!

jsr 07-04-2013 07:38 AM

Nope, I can connect from local host but not to the external IP.

The only thing that feels like progress is when I use my default gateway IP, it gives an immediate connection error. Otherwise if I use my public IP (i.e. the one you'd see if you type "what's my IP" in google) or an invalid IP (201.201) it times out with a connection error.

Clearly I'm doing something wrong but I'm stumped.. I've added inbound and outbound filewall rules for port 3306 - in fact I've opened my firewall to the point where I'm sitting here paranoid, and the port forwarding is setup as per the rules for the emu server (which works fine).

If someone has this setup for a windows server and could describe the steps they took it would be great :)

p.s. I reconfigred mysql to make sure it was setup for remote connections (I think all it does is add a firewall rule).

jsr 07-04-2013 09:58 AM

Ok it was pretty straightforward in the end, I was confusing things by limiting connections to 1 .. and then using that connection to test locally :) /kick

Creating a MySQL user:
If using Navicat;
- Click 'User' on the main ribbon
- Right click 'root@localhost'
- Choose 'duplicate user'
- In the username field, change it to something preferable to root_Copy (or keep it if you think it has a nice ring to it)
- In the host field, replace 'localhost' with '69.168.254.244'
- In the password/confirm password fields, enter a secure password. Note: A long password (e.g. dogsandcatslikerawfishfordinner) is exponentially more secure than one with uppercase, lowercase, numbers, and symbols while also being much easier to remember
- Under the advanced tab, change 'max user connections' to 1
- Under the server privileges tab, uncheck the privileges 'File', 'Process', 'Drop', 'Shutdown', 'Super', and 'Create user' (there may be others worth disabling)
- Click Save

If you're using mysql command line you're either a) clever enough to do this part by yourself, or b) you should really get a copy of Navicat as it will improve your quality of life.

To create a filewall rule:
In windows firewall
- Click new rule
- Select 'Port' and click next
- Select 'TCP and specific local ports', enter 3306, click next
- Select 'Allow the connection', click next
- Select the appropriate network type ('domain', 'private', 'public'). This will typically be private but if in doubt tick them all. Then click next
- Enter a name for the rule (e.g. Incoming Mysql), click finish

For extra security:
- Refresh the list of rules (F5)
- Locate the new rule (e.g. Incoming Mysql) in the list, right click and choose Properties
- Under the scope tab, find Remote IP address and select 'These IP addresses'
- Click Add, select 'This IP or subnet'
- Enter 69.168.254.244
- Click Ok, and then click Ok again


All times are GMT -4. The time now is 09:49 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.