Sign inSign up

mogekag/uvdesk

By mogekag

Updated almost 5 years ago

Minimal environment to run a UVdesk application from composer or github repository.

Image
0

1.0K

mogekag/uvdesk repository overview

Note that you need to provide your uvdesk code within a uvdesk folder in the same directory level. This requires that you have already configured your database credentials in your .env and created the database. You won't be able to configure on your broswer, since Symfony requires a set of permissions that you'd need to run within your Dockerfile. With that being said, make sure your permissions are 0755 for the following:

  1. /var/www/html/uvdesk/.env
  2. /var/www/html/uvdesk/config
  3. /var/www/html/uvdesk/var
  4. /var/www/html/uvdesk/vendor

Obs: If you are not fetching tickets from e-mail, you wont need permission to /var/www/html/uvdesk/vendor.

Highly recommended to configure your database from command line the first time, instead of running in dev and switching to prod. It is a known issue that if you try to configure your database from prod environment it will run forever.
$ docker exec -it uvdesk-app /bib/bash
$ cd /var/www/html/uvdesk && php bin/console uvdesk:configure-helpdesk


SwiftMailer with Gmail

- /config/packages/uvdesk.yml
  1
  2 parameters:
  3     app_locales: en|fr|it
  4
  5     # Default Assets
  6     assets_default_agent_profile_image_path: 'bundles/uvdeskcoreframework/images/uv-avatar-batman.png'
  7     assets_default_customer_profile_image_path: 'bundles/uvdeskcoreframework/images/uv-avatar-ironman.png'
  8     assets_default_helpdesk_profile_image_path: 'bundles/uvdeskcoreframework/images/uv-avatar-uvdesk.png'
  9
 10     uvdesk_site_path.member_prefix: member
 11     uvdesk_site_path.knowledgebase_customer_prefix: customer
 12
 13     # File uploads constraints
 14     # @TODO: Set these parameters via compilers
 15     max_post_size: 8388608
 16     max_file_uploads: 20
 17     upload_max_filesize: 2097152
 18
 19 uvdesk:
 20     site_url: '127.0.0.1'
 21     upload_manager:
 22         id: Webkul\UVDesk\CoreFrameworkBundle\FileSystem\UploadManagers\Localhost
 23
 24     support_email:
 25         id: mail-id
 26         name: Dummy Name
 27         mailer_id: mailer_id
 28
 29     # Default resources
 30     default:
 31         ticket:
 32             type: support
 33             status: open
 34             priority: low
 35         templates:
 36             email: mail.html.twig
- /config/packages/uvdesk_mailbox.yaml

Obs: Make sure you allow IMAP on google settings.


  1 uvdesk_mailbox:
  2     emails: ~
  3         # Often Reply emails like from gmail contains extra and redundant previous mail data.
  4         # This data can be removed by adding delimiter i.e. specific line before each reply.
  5         # delimiter: '<-- Please add content above this line -->'
  6         # enable_delimiter: true
  7
  8     # Configure your mailboxes here
  9     mailboxes:
 10         mailer-name:
 11             name: name
 12             enabled: true
 13             deleted: false
 14
 15             # [SMTP] Outgoing mail server
 16             # Swiftmailer smtp mailer to use for sending emails through on behalf of this mailbox
 17             smtp_server:
 18                 mailer_id: mailer_id
 19
 20             # [IMAP] Incoming mail server
 21             # IMAP configurations to use for fetching emails from mailbox, make sure you allow IMAP on google settings
 22             imap_server:
 23                 host: '{imap.gmail.com:993/imap/ssl}INBOX'
 24                 username: [email protected]
 25                 password: notarealpassword
 26

- /config/packages/swiftmailer.yaml

  1 swiftmailer:
  2     default_mailer: mailer_id
  3     mailers:
  4         mailer_name:
  5             transport: gmail
  6             username: [email protected]
  7             password: notarealpass
  8             # sender_address: ~
  9             # delivery_addresses: ~
 10             disable_delivery: false

Passing variables through docker-compose.yaml

- /config/parameters.php
  1 <?php
  2
  3 $container->setParameter('APP_NAME', $_SERVER['APP_NAME']);
  4 $container->setParameter('APP_ENV', $_SERVER['APP_ENV']);
  5 $container->setParameter('APP_SECRET', $_SERVER['APP_SECRET']);
  6 $container->setParameter('APP_VERSION', $_SERVER['APP_VERSION']);
  7 $container->setParameter('APP_KEY', $_SERVER['APP_KEY']);
  8 $container->setParameter('APP_DEBUG', $_SERVER['APP_DEBUG']);
  9 $container->setParameter('APP_URL', $_SERVER['APP_URL']);
 10 $container->setParameter('APP_TIMEZONE', $_SERVER['APP_TIMEZONE']);
 11 $container->setParameter('APP_CURRENCY', $_SERVER['APP_CURRENCY']);
 12 $container->setParameter('APP_CHANNEL', $_SERVER['APP_CHANNEL']);
 13
 14 $container->setParameter('DB_CONNECTION', $_SERVER['DB_CONNECTION']);
 15 $container->setParameter('DB_HOST', $_SERVER['DB_HOST']);
 16 $container->setParameter('DB_PORT', $_SERVER['DB_PORT']);
 17 $container->setParameter('DB_DATABASE', $_SERVER['DB_DATABASE']);
 18 $container->setParameter('DB_USERNAME', $_SERVER['DB_USERNAME']);
 19 $container->setParameter('DB_PASSWORD', $_SERVER['DB_PASSWORD']);
 20 $container->setParameter('DB_PREFIX', $_SERVER['DB_PREFIX']);
 21
 22 $container->setParameter('BROADCAST_DRIVER', $_SERVER['BROADCAST_DRIVER']);
 23 $container->setParameter('CACHE_DRIVER', $_SERVER['CACHE_DRIVER']);
 24 $container->setParameter('SESSION_DRIVER', $_SERVER['SESSION_DRIVER']);
 25 $container->setParameter('SESSION_LIFETIME', $_SERVER['SESSION_LIFETIME']);
 26 $container->setParameter('QUEUE_DRIVER', $_SERVER['QUEUE_DRIVER']);
 27
 28 $container->setParameter('MAIL_DRIVER', $_SERVER['MAIL_DRIVER']);
 29 $container->setParameter('MAIL_HOST', $_SERVER['MAIL_HOST']);
 30 $container->setParameter('MAIL_PORT', $_SERVER['MAIL_PORT']);
 31 $container->setParameter('MAIL_USERNAME', $_SERVER['MAIL_USERNAME']);
 32 $container->setParameter('MAIL_PASSWORD', $_SERVER['MAIL_PASSWORD']);
 33 $container->setParameter('MAIL_ENCRYPTION', $_SERVER['MAIL_ENCRYPTION']);
 34
 35 ?>
- /config/config.yml
  1 imports:
  2         - { resource: parameters.php }
- /.env
  1 APP_NAME=APP_NAME
  2 APP_SECRET=APP_SECRET
  3 APP_ENV=dev
  4 APP_VERSION=APP_VERSION
  5 APP_KEY=APP_KEY
  6 APP_DEBUG=APP_DEBUG
  7 APP_URL=APP_URL
  8 APP_TIMEZONE=APP_TIMEZONE
  9 APP_CURRENCY=APP_CURRENCY
 10 LOG_CHANNEL=LOG_CHANNEL
 11
 12 DB_CONNECTION=DB_CONNECTION
 13 DB_HOST=DB_HOST
 14 DB_PORT=DB_PORT
 15 DB_DATABASE=DB_DATABASE
 16 DB_USERNAME=DB_USERNAME
 17 DB_PASSWORD=DB_PASSWORD
 18 DB_PREFIX=DB_PREFIX
 19 DATABASE_URL=mysql://user:pass@host:port/dbname
 20
 21 BROADCAST_DRIVER=BROADCAST_DRIVER
 22 CACHE_DRIVER=CACHE_DRIVER
 23 SESSION_DRIVER=SESSION_DRIVER
 24 SESSION_LIFETIME=SESSION_LIFETIME
 25 QUEUE_DRIVER=QUEUE_DRIVER
 26
 27 #MAILER_DSN=MAIL_DRIVER://MAIL_USERNAME:[email protected]:443
 28 MAIL_DRIVER=MAIL_DRIVER
 29 MAIL_HOST=MAIL_HOST
 30 MAIL_PORT=MAIL_PORT
 31 MAIL_USERNAME=MAIL_USERNAME
 32 MAIL_PASSWORD=MAIL_PASSWORD
 33 MAIL_ENCRYPTION=MAIL_ENCRYPTION

A docker-compose.yaml sample:

version: "3.9"
  2
  3
  4 services:
  5   uvdesk:
  6     container_name: uvdesk-app
  7     image: mogekag/uvdesk:latest
  8     tty: true
  9     expose:
 10         - '80'
 11     ports:
 12         - '80:80'
 13     environment:
 14         # installation in dev, change it after installation to prod
 15         - APP_NAME=uvdesk
 16         - APP_SECRET=biggermanword
 17         - APP_ENV=dev
 18         - APP_VERSION=1.0.8
 19         - APP_KEY=
 20         - APP_DEBUG=True
 21         - APP_URL=http://domain.com
 22         - APP_TIMEZONE=America/Sao_Paulo
 23         - APP_CURRENCY=BRL
 24         - LOG_CHANNEL=stack
 25
 26         - DB_CONNECTION=mysql
 27         - DB_HOST=0.0.0.0
 28         - DB_PORT=3306
 29         - DB_DATABASE=uvdesk
 30         - DB_USERNAME=uvdesk
 31         - DB_PASSWORD=p4ssw0rd
 32         - DB_PREFIX=
 33
 34         - BROADCAST_DRIVER=log
 35         - CACHE_DRIVER=file
 36         - SESSION_DRIVER=file
 37         - SESSION_LIFETIME=20
 38         - QUEUE_DRIVER=sync
 39
 40         - MAIL_DRIVER=smtp
 41         - MAIL_HOST=smtp.domain.com
 42         - MAIL_PORT=2525
 43         - [email protected]
 44         - MAIL_PASSWORD=notarealpassword
 45         - MAIL_ENCRYPTION=tls
 46
 47         - CRON_USER1=root
 48         - CRON_SCHEDULE1=*/5 * * * *
 49         # you are able to specify all emails registered separated by spaces
 50         - CRON_COMMAND1=cd /var/www/htm/uvdesk && php bin/console uvdesk:refresh-mailbox [email protected]
 51     restart: always
 52     extra_hosts:
 53       - "{domain.com}:127.0.0.1"
 54     volumes:
 55         - ./uvdesk:/var/www/html/uvdesk

Tag summary

Content type

Image

Digest

Size

119 MB

Last updated

almost 5 years ago

docker pull mogekag/uvdesk