Creating a new database
First thing you want to do before installing BeDesk is to create a new database on your mysql server. If you already know how to do this/or have already created one just skip to the next step.
Your host will most likely have phpMyAdmin as mysql manager, if that is the case here's a step by step guide (if not it will be very similar on other managers).
Login to your control panel, find and click phpMyAdmin link:
Click on the database tab in the top menu, enter any name you like and click create.

Uploading Files
After creating a database, unzpip the .zip file you downloaded from CodeCanyon and upload the contents of server folder to your hosting root folder (usually called www or html) or a sub-directory.
Shared hosting providers usually have a web based file manager, but you should use something like Filezilla to do the upload as the web based managers can cause various problems fairly often.
Installing BeDesk
After you uploaded BeDesk files, simply open up your site url and follow on-screen instructions to finish the installation.
Updating to new versions
- 1. Extract the .zip file you downloaded from CodeCanyon.
- 2. Upload and overwrite all the files same way you did when you first installed.
- 3. Visit http://yoursite.com/update url and click Update Now button.
- 4. If you were redirected to homepage, it means update was applied successfully.
Social Login
In order for social logins to work properly, you will need to register for an application on their respective sites and enter the credentials you receive into admin area > settings page.
Facebook
- Register for regular facebook account, if you don't already have one.
- Open this url, click my apps in the top navigation bar, then Add a New App
- Enter any display name, your email address and click Create App ID
- Click Add Product in the left sidebar, then Facebook Login, select Web, enter your site url. You can ignore the rest of the panels in quickstart wizard.
- Click Facebook Login > Settings and enter http://your-site-url.com/secure/auth/social/facebook/callback into Valid OAuth redirect URIs field.
- Click Dashboard in left sidebar and copy/paste APP ID and APP SECRET into settings page.

Google
- Register for regular google account, if you don't already have one.
- Open this url, create a new project, click Credentials in left sidebar, select Oauth Client ID -> Web Application.
- Enter http://your-site-url.com/secure/auth/social/google/callback into Authorized Redirect URIs field and click Create.
- Copy/paste Client ID and Client Secret into settings page.

Envato
You only need to register for envato app if you are planning to use BeDesk envato integration module.
- Register for regular envato account if you don't have one already.
- Open this url, click My Apps, Register a new app
-
Request these permissions:
- View the user's Envato Account username
- View the user's email address
- Verify purchases of the user's items
- View the user's purchases of the app creator's items
- Enter http://your-site-url.com/secure/auth/social/envato/callback into Confirmation URL field and click Register App
- Copy/paste OAuth client ID and secret application key into settings page.

- Open this url.
- Click Create new token
- Select all permissions and click Create Token.
- Copy/paste newly created toekn into admin area > settings > authentication page.
Outgoing Mail
Outgoing mail includes all emails that are sent from your application to the user. Password reset emails, user notifications, ticket replies and more.
In order for outgoing mail to work, you will need to configure it in admin area > settings > mail page.
Unless you already have one of the other available mail methods set up, we highly recommend using mailgun. It's free for up to 10000 emails a month and you will avoid many of the problems associated with traditional SMTP servers.
Mailgun
Although you are not required to add a credit card for mailgun, it's recommended that you do, because you will be put on a lower priority queue without a credit card, which could result in slower email delivery.
- Register here
- In the next page click Add Your Domain button, then enter your site url in the Domain Name field and click Add Domain
- Verify your domain on mailgun. This will differ depending on your hosting, but you should be able to find a guide in your hosting providers documentation, mailgun documentation or simply via google search.
SMTP
If you want to use SMTP, go to admin area > settings > mail page and simply enter your smtp server credentials.
Incoming Mail
Incoming emails can be automatically turned into tickets by BeDesk. Currently two methods are supported Mailgun and Webhook.
Mailgun
Note that if you already have mx records on your domain set to, for example, gmail, you can set mailgun mx records for a sub-domain, for example support.your-site.com
now you can forward your email from your gmail account to support@support.your-site.com. Now you will receive emails to both your gmail inbox and BeDesk.
- Make sure you have configured mailgun provider for outgoing mail.
- Set up mx records in your domain page on mailgun site, so all mail sent to your domain is forwarded to mailgun.
- Create a new mailgun route here. Select Catch All as expression type and, enter https://your-site.com/tickets/mail/incoming into "Store and notify" field. This will forward all emails received by your mailgun domain to BeDesk.
- Create a new webhook here. Select Dropped Messages and enter https://your-site.com/tickets/mail/failed into URL field. This will allow BeDesk to notify you if any of the emails you have sent were not delivered.
Webhook
You should use this method if you already have a mail server setup for your domain that receives emails.
- Select Webhook in admin area > settings > mail page.
- Enter Secret Webhook Key. This should be pre-generated, but you can enter a custom random 30 character length string. This will be used to validate that incoming emails are actually coming from you.
-
Whenever you receive an email, send a http POST request to https://your-site.com/tickets/mail/incoming
Http request should have these items in the body:
- headers - key => value array of email headers.
-
body - array with three items:
- plain - text version of the email.
- html - html version of the email.
- stripped-html - Optional. Html version of the email with quoted replies from previous emails removed. BeDesk will do this for you if needed.
-
Attachments - array of email attachments. Each attachment should have this information:
- original_name
- mime_type
- size
- contents
- extension
- cid. If attachment does not have a cid it should be null.
Search
There are several available methods for help center and dashboard search. Currently active method can be changed in admin area > settings > search page.
- Mysql - Default search method, does not require any extra configuration.
- TNTSearch - Might provide more accurate and faster search, however setting up queue is highly recommend.
- Algolia - Cloud based search provider. Good option if you need more powerful search, but don't want configure your server.
- Elasticsearch - Powerful search engine, however requires you to download, install and keep elasticsearch service running on the server.
Queue
Queues are optional. However, when enabled they will increase the performance of your application.
Tasks that would take a longer time to complete will be automatically added to background "queue"
so your application can continue to run. For example, when sending an email to user, "email sent"
notification can be shown to user instantly, instead of them having to wait until email is actually
sent out, which can take several seconds.
There are several available methods for queue. Currently active method can be changed in admin area > settings > queue page.
- Sync - Default queue method, disables queue.
- Beanstalkd - Recommended option. beanstalkd will need to be installed and running on your server in order to use this method.
- Redis - Redis will need to be installed and running on your server in order to use this method.
- SQS (Amazon simple queue service) Cloud Based queue method. You will need to register for an account and enter your credentials into settings page.
Realtime
This functionality allows the application to receive updates from the server in realtime without the need to refresh the browser.
For example, if you are viewing tickets list and a new ticket is submitted by a user, this new ticket will appear in tickets list
instantly, where as without real time functionality this ticket would not appear until browser window is refreshed.
Currently there are two available methods for realtime functionality. Active method can be changed in admin area > settings > realtime page.
- Pusher - Cloud based realtime method. It will not require any extra setup on the server.
- Log - This will disable realtime functionality.
Pusher
Pusher free plan currently allows 100 simultaneous connections (users) and 200k messages per day. This should be more then enough for any medium to large sized site.
- Register for pusher account here.
- You should see "create new app" dialog, select the cluster that is closest to your server location and click create my app.
- Copy credentials from App Keys tab into admin area > settings > realtime page.
Support
If you have any issues or questions, you can submit a new ticket on our support site here. Thank you!
Social Login
In order for social logins to work properly, you will need to register for an application on their respective sites and enter the credentials you receive into admin area > settings page.