Ultimate UNRAID Dashboard (UUD)


Recommended Posts

On 3/4/2021 at 4:57 AM, hogfixer said:

One thing I did was change the displays to the last 24 hours, 7 days, 4 weeks, and 365 days.

 

Under Query Options and Relative Time

 

Today = now-24h

Week = now-7d

Month = now-30d

Year = now-365d

 

 

image.png.23e4bb9603e74245d0e1497326fd51c5.png

 

Thank you for the details, it was something that was bugging me for some time but I was not sure how to address it.

I was able to quickly change all relevant fields with a Replace on the json in a text editor. 👍

Link to comment

Hmm. I have asrock rack X570D4U-2L2T motherboard. Cannot get ipmitool to working.... If I launch from my Debian machine command: ipmitool -H 192.168.xx.xx -U admin -P password -I lanplus sdr, I can see it is working great. But if I run that command from telegraf container, it won't work at all. Says only: Error: Unable to establish IPMI v2 / RMCP+ session. I have tryet on both, Alpine and Debian based containers... Any suggestions to try?

In config I have:

[[inputs.ipmi_sensor]]

 

servers = ["admin:xxxx@lanplus(192.168.xx.xx)"]

 

And in docker logs I can see:

 

[inputs.ipmi_sensor] Error in plugin: failed to run command /usr/sbin/ipmitool -H 192.168.xx.xx -U admin -P xxx -I lanplus sdr: exit status 1 - Error: Unable to establish IPMI v2 / RMCP+ session

Link to comment

So I have followed the excellent guide on YouTube by Nate Harris. I have also adjusted the graphs to fit my setup but I'm still haven't trouble with a little missing data from some fields.

 

I'm still not able to pull System Temps, Fan Speed and System Power. What they are not critical they are nice to haves if possible.

 

For system temps 'B' is disabled - I have a feeling that if I get one of these working all 3 will work. 

 

Any help is appreciated. 

 

Thanks

 

image.png.225339d102ffe43e2170858714c46d48.png

Link to comment
16 minutes ago, mwoods98 said:

So I have followed the excellent guide on YouTube by Nate Harris. I have also adjusted the graphs to fit my setup but I'm still haven't trouble with a little missing data from some fields.

 

I'm still not able to pull System Temps, Fan Speed and System Power. What they are not critical they are nice to haves if possible.

 

For system temps 'B' is disabled - I have a feeling that if I get one of these working all 3 will work. 

 

Any help is appreciated. 

 

Thanks

 

image.png.225339d102ffe43e2170858714c46d48.png

Never mind, some how I missed the impi section in the telegraph conf. 

It's all working good now!

 

Link to comment
On 3/2/2021 at 11:15 PM, dbinott said:

Wondering if anyone can help me figure out I am not getting data for some metrics? At one point I had the library data and stream data. I recently moved the server to a different location with different network, but I believe I changed IP addresses where applicable. Not sure why negative numbers in growth? Why some data about library but not others? I have disk data, but can't get overview?

 

 

image.png.d18d93bbcbf072558119347427a4754d.pngimage.thumb.png.b8f16e9e87ed3cef5d6295d0f9e5f7f4.pngimage.thumb.png.d927fda8e4d48ef87d1a640db3205619.pngimage.png.bbe1077b7027e641c8252da27cf77985.png image.png.87368014bcbca78bc1ba695453bdec56.png

I had the same issue. I discovered that the database name and the Tautulli name for these were different. i.e. Movie vs Film, TV Show vs TV. If you edit each box you can change the section_name = xxxxxx to the correct name. Hope this helps as it took me a while to work out.

Link to comment
On 3/17/2021 at 12:35 PM, falconexe said:

 

Alright, clear your schedules. 1.6 drops this weekend! My Target is Saturday. It's gonna be one where you'll want to upgrade ha ha.

 

Development on UUD 1.6 is now COMPLETE! I'm finally heading to bed! When I wake up, I will gather screenshots and finish up the content and verbiage for the release posts. Still a few more hours of work, but I'll be glad to get this one out the door. I really hope you guys like it. Lots of exciting stuff for you to discover and unpack tomorrow!

 

Edited by falconexe
  • Like 6
Link to comment
21 minutes ago, wes.crockett said:

Apparently today was a good day to Google 'Unraid Grafana Dashboard'. I await your next post, @falconexe.

 

Ha ha. Welp, it's about to happen. Uploading code now. Should be about 1-2 hours out. Screenshots are done, and I just have to get the posts written. Welcome to the UUD community.

  • Like 1
Link to comment

@SpencerJ @limetech

 

The Ultimate UNRAID Dashboard Version 1.6 is here! This is the largest release yet 😁. Leveraging the power of the UNRAID API I bring you Array, VM, and Docker Monitoring. This new version also adds a dedicated SSD (Cache or otherwise) monitoring section complete with TBW monitoring to show SSD % of drive life used. There are a ton of other features, enhancements, bug fixes, improvements and continued refinement of the UI and color scheme. In total, UUD Version 1.6 adds 25 new Panels across 7 sections.  Enjoy! 😉

 

 

New Dependencies:

 

 

 

 

  • New Grafana Data Source:
    • "UNRAID API"
    • 285356085_Datasource-UNRAIDAPI.thumb.png.94a0af9607c81bd6e1abf7ef6e4d50c9.png

 

 

 

  • Dashboard Variables
    • Variables.thumb.png.432097b30e952a101830911b49920853.png

 

 

 

Please Note: This release is an example tailored to MY UNRAID Server. The intent here is that you will take this and modify it for your Setup. You have everything you require to template new panels and tailor it to your own needs.

 

 

 

Highlights:

 

  • New UNRAID API Related Panels

    • Dynamic Header

      • Host Name

      • Array Status

      • Parity Status

      • Mover Running (True/False)

      • Parity Check Running (True/False)Header.thumb.png.83064dabd06295554c99303110d42572.png

    • Overwatch
      • Docker Monitoring with Real Time Dynamic Images/Statuses
        • Dockers (Running)
        • Dockers (Stopped)926583167_DockerStatus.thumb.png.dc61f331d74d9657c46149c8f1d3f246.png
      • VM Monitoring with Real Time Dynamic Images/Statuses
        • VMs (Started)
        • VMs (Stopped)765830780_VMStatus.thumb.png.9bc76042b2e2ed7dd0fcbbb89f8612f0.png
    • Docker
      • Dockers (All)
      • Docker Details314511344_Dockers(All).thumb.png.92808247ef39a7d2f3080e02af29897d.png
    • Virtual Machines
      • VMs (All)
      • VM Details06a.thumb.png.a6acd5dc894393a85e6531a4989878eb.png
    • Server Hardware
      • Shows More Detail Regarding Specific Server Hardware Specifications1071372933_ServerHardware.thumb.png.02d0449156ad8285ec0b63bc69899bb2.png

 

  • Array Growth 
    • Array Growth (Lifetime)
      • Shows Array Growth Over Rolling Last 10 Years (1 Data Point Per Day)1662335996_ArrayGrowth(Lifetime).thumb.png.c57838a767decc3c3500219f31029d73.png

 

  • SSD (Cache) Drive Health
    • SSD Writes (Day)
      • Shows SSD Writes For Rolling Last 24 Hours at 15 Minute Intervals
        • Controlled By New SSD Drive Variable
    • SSD Writes (Year)
      • Shows SSD Writes For Rolling Last Year at 1 Day Intervals
        • Controlled By New SSD Drive Variable        
    • SSD Lifetime Writes
      • Measures SSD Lifetime Writes
        • Math Based on Manufacturer Max TB Written (TBW) Specification
        • Color Based on Thresholds (Derived From Manufacturer TBW)
    • SSD Lifetime Reads
      • Measures SSD Lifetime Writes
        • Math Based on Manufacturer Max TB Written (TBW) Specification
        • Color Based on Thresholds (Derived From Manufacturer TBW)    
    • SSD Life Used
      • Calculates Used Drive Life Based on Lifetime Rights Divided by Manufacturer Max TBW
        • Math Based on Manufacture Max TB Written (TBW) Specification
        • Color Based on Thresholds (% of Manufacturer TBW)
    • SSD Drive Temperature (Dynamic Colors Based Temp Thresholds)1873428541_SSDHealth.thumb.png.8e8e9300c2fb3d04b46aa7845be8e38d.png

 

  • Plex Library Statistics
    • Combined Growth Chart Across All Libraries
      • The old way was just ugly and too performance intensive
      • This is a nice one stop shop!
    • Completely Overhauled with New Panels with Media Type Breakdowns Across Sub Libraries342123298_PlexLibraryStatistics.thumb.png.ba1b5633d1f357e1875665c55a547aef.png         
  • Changes
    • Variable Now Used for Varken Datasource (Set at Top of Dashboard)
    • Updated GUI Panels/Sizes/Locations/Colors/Themes
    • Change Uptime Panel to Fit New Theme
    • System Power Panel
      • Changed System Power to Bar Charts
      • Scaled the Volts to a Range Between 1V and 12V
    • Array Growth
      • Changed All Panels to Rolling Timelines
        • Today So Far = Last 24 Hours
        • This Week So Far = Last 7 Days
        • This Month So Far = Last 30 Days
        • This Year So Far = Last 365 Days
    • Plex Stats Renamed to Plex Streams

    • Plex Heatmaps

      • Changed All Panels to Rolling Timelines

        • Today So Far = Last 24 Hours

        • This Week So Far = Last 7 Days

        • This Month So Far = Last 30 Days

        • This Year So Far = Last 365 Days

    • Plex History
      • Device Types
        • Changed Chart from Pie to Donut
      • Stream Types
        • Changed Chart from Pie to Donut
      •  Media Types
        • Changed Chart from Pie to Donut
      • Media Qualities
        • Changed Chart from Pie to Donut
      • Changed Panels to Rolling Timelines
        • Today So Far = Last 24 Hours
        • This Week So Far = Last 7 Days
        • This Month So Far = Last 30 Days
        • This Year So Far = Last 365 Days
    • Plex Library Growth
      • Changed All Panels to Rolling Timelines
        • Today So Far = Last 24 Hours
        • This Week So Far = Last 7 Days
        • This Month So Far = Last 30 Days
        • This Year So Far = Last 365 Days
    • CPU 01 Core Load
      • Changed Labels So Cores Reflect Only the Core Number
        • Before: Core01, Core02, ...
        • After: 01, 02, ...
        • This Improves Readability and Scalability on Smaller (Non 4K Displays)
    • Array Disk Storage
      • Used % Field: Removed Cell Background Colors and Changed Override to Basic Gauge
      • Improved Visual Experience and Readability
    • Array Total Storage
      • Used % Field: Removed Cell Background Colors and Changed Override to Basic Gauge
      • Improved Visual Experience and Readability
    • Flash Storage
      • Used % Field: Removed Cell Background Colors and Changed Override to Basic Gauge
      • Improved Visual Experience and Readability
    • Unassigned Storage
      • Used % Field: Removed Cell Background Colors and Changed Override to Basic Gauge
      • Improved Visual Experience and Readability
    • Flash Storage
      • Used % Field: Removed Cell Background Colors and Changed Override to Basic Gauge
      • Improved Visual Experience and Readability
    • Drive S.M.A.R.T. Health Overview
      • Temp (C) Field: Removed Cell Background Colors and Changed Override to Colored Text
      • Improved Visual Experience and Readability
    • Drive S.M.A.R.T. Health Overview
      • Temp (C) Field: Removed Cell Background Colors and Changed Override to Colored Text
      • Improved Visual Experience and Readability
      • UDMA CRC Errors Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Current Pending Sectors Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Reallocated Sectors Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Reallocated Events Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Offline/Uncorrectable Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Helium Level Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
    • Drive S.M.A.R.T. Health Summary
      • Min Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Max Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Mean Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
      • Total Field: Removed Cell Background Colors and Changed Override to Colored Text
        • Improved Visual Experience and Readability
  • UPS Stats
    • UPS Runtime Left
      • Removed Exclamation Point From Panel Name
      • Changed All Panels to Rolling Timelines
        • Today So Far = Last 24 Hours
        • This Week So Far = Last 7 Days
        • This Month So Far = Last 30 Days
        • This Year So Far = Last 365 Days
      • Removed Cell Background Colors
        • Improved Visual Experience and Readability

    

  • Fixes/Improvements
    • All Panels are Now Driven by Datasource Variables    
    • Adjusted All Drive Path Panels to Use Regex
      • Resolves ROOTFS Issue Some Users Were Experiencing
      • UUD Should Now Not Care How Your Paths are Setup and Just Work
    • Adjusted Drive Variables to Select Distinct Based on Selected Time Interval
      • Removes Missing/Old Drives From Panels and Removes Legacy Data
      • Prevents Old Device IDs "SD*" From Showing Up After Reboots
        • Provided You Select a Timeframe After the Reboot
    • Varken Geolocation Map
      • Fixed Bug Where Geo Map Header Was Hidden Behind UI Elements
      • Gave Panel a New Name of "Stream Origination"
      • Map Now Automatically Centers on Current Stream (Last Geo Hash)
      • Changes Default Zoom Level to 3 (Zoom Out By Factor of 1)
      • Changed Geo Location Blips to Yellow to Match Plex Color Theme
      • Added Mouse Zooming/Scrolling (Wheel) to Map
    • General
      • Graphs Now Start at "0" Where Applicable (Docker Ram)
      • % Graphs Now Cap at 100% (CPU Graphs)
      • Drive Queries Now Correctly Account For Dynamic Host Variable (Custom Query and Parenthesis Placement)

 

 

 

UUD 1.6 Screenshots (With Personal Info Redacted):

 

01.thumb.png.293b0c9260367660c12344d8743b1ad0.png

02.thumb.png.268c33dfd1cfc20a23e3422673e4b865.png

03.thumb.png.c6d5fd670e4b8f600bbca858a0614f1e.png

04.thumb.png.c8ebd0bfc846e1b9fa1dd50058beea69.png

05.thumb.png.80fed2869c27560ef77882d8974c0e0e.png

06.thumb.png.b75b0fc3c57e9467601f0e7c5f7bcf98.png

06a.thumb.png.14ddfa210b25e005e1d872df756b961b.png

07.thumb.png.446a36d9bcaf9b1e164ec1aefee99bb4.png

08.thumb.png.ba1a54f8b63015394363a20cb6b6840f.png

09.thumb.png.c30ebe948a5cca08f7039a17c3568f81.png

10.thumb.png.00b3f4b85045792910de761b42790967.png

11.thumb.png.f2b0cb3c0464f58147a50a771cbfff9c.png

 

 

A TREMENDOUS amount of work has gone into this release. There are a ton of people who have contributed to this release whether it be bug fixes, suggestions, improvements, or new ideas. I will do an updated post to specifically call out each and every person who helped with this 1.6 build. First, though, I just want to get this out to you guys ASAP.

 

There are a few tips and tricks that I will also release in a post soon that will detail some of the gotchas with the UNRAID API and new Grafana Plugins. I just need some time to put that together. In the meantime, please let me know how your baseline 1.6 install is going. I really hope you guys enjoy this release!!!

 

Edited by falconexe
  • Like 1
  • Thanks 3
Link to comment

DEVELOPER UPDATE: UUD 1.6 Instructions

 

 

 

UNRAID API Panels:

 

You will need to adjust the UNRAID API related queries to get them to work for your server. Once you have the UNRAID API docker up and running, please amend any panels that use this docker (see release notes for a list) to include YOUR SERVER IP and Level of Security (HTTP Vs. HTTPS) where applicable. Do this for all of these panels that use the IP address (not all do...) and you should see data.

 

 

image.png.9fb7333e7b158539eeea0cf844e6f2f8.png

 

 

 

Docker/VM Images and the Grafana Dynamic Image Panel Plugin Issues:

 

 

There are a couple of things I noticed during development that are some quirks regarding the third party dependencies and plugins that we have to use to show all of this pretty data.

 

One of the biggest issues I immediately found had to do with browser certificate security and the Image Panel Plugin. Many of you may have run into an issue by now where the Docker/VM images do not show up and only the item words do. It will look something like this:

 

 

932477395_UnraidAPIImagesBroken.thumb.png.838972e1cd566cbff72e844d506c532e.png

 

 

This is due to the plugin not recognizing the authentication to the UNRAID web front end where these images live. We need to help it out the first time around. This fix will last until the browser cookies get wiped or you delete your web history. 

 

In order to fix this (this example is Chrome, but this workflow will also work on FireFox and other browsers), you need to right click any one of the items, and open the image/link in a new window.

 

Chrome Example:

518433523_UnraidAPIImagesFix01.thumb.png.d320205dd4e0a8f541dcc04b31bd0c1d.png

 

Firefox Example:

image.thumb.png.4568cb136b7f69296d1e5722f94f5ed9.png

 

 

Next, you will be presented with the UNRAID login page. Enter your credentials and you will land on your UNRAID web GUI homepage.

 

 

791359097_UnraidAPIImagesFix02.png.3e0ea8045f93a535962574e8996299fe.png

 

Now go back to the Grafana UUD 1.6 dashboard tab and refresh it. The Docker/VM images should magically appear. You can now close that second UNRAID tab you opened.

 

 

2091185834_UnraidAPIImagesFix03.thumb.png.44becf06485435d4515bf1b266c8222c.png

 

 

From what I can tell, this has something to do with the SSL certificate and the dynamic autogenerated URL that the UNRAID web GUI uses (if you chose to secure it). The image plugin just can't handle it natively. If anyone has a better fix for this, please let me know and I will incorporate it into the UUD.

 

 

Regarding how these image panels actually work, YOU WILL NEED TO ENTER YOUR SERVER IP into each of the image panels. You can do this by editing the panel and going to the right side settings area. Finally, modify the URL > Base URL IP address. If you are using SSL with your UNRAID Web GUI, stick with "https://", if you are not, then use "http://".

 

 

image.png.56bf6f3d8904f569fd32cf43b1772b75.png

 

 

 

 

Calculating TBW For the SSD Health Panels

 

In order for the SSD health panels to work correctly, there is some manual configuration that must be performed for YOUR SSD. If you do not do this, the numbers WILL NOT BE ACCURATE if you have a different SSD Make/Model/Size.

 

First, you must manually edit the panels and select the Serial Number for your SSD. This IS NOT driven by the SSD variable due to the way these queries work.

 

 

1469644859_SSDSerial.thumb.png.4f74f810320edb5ca43023d9071918d3.png

 

 

To Calculate Your TBW (Terabytes Written) You will need to do the following:

 

1. Identify your SSD Manufacturer, Make, and Model

2. Go to Your SSD Manufacturer's website and find the TBW value for for your drive in Terabytes

3. Change the MATH functions on the SSD drive health panels to match your TBW and Data Units (LBA Size)

 

 

Example: My Cache Drive is a 1TB Samsung 970 EVO.

 

https://www.samsung.com/semiconductor/minisite/ssd/product/consumer/970evo/

 

 

On the specification page, you will find a stat called TBW. For my particular drive, you will see 600 TBW. This means that you can write up to 600 Terabytes for the life of the drive before the manufacturer expects you to possibly run into problems. The rule of thumb is that if you approach that TBW threshold, you may want to start thinking about replacing that drive.

 

 

image.thumb.png.e170ef15054f3eb39eec4515d0979c6f.png

 

 

This 600 TBW number (Yours may vary) needs to be entered into the following MATH function on the "SSD Life Used" panel in order for this to work for your drive.

 

 

1723010317_SSDTBW.thumb.png.7f18b784b3c2674483153b62aa1c837f.png

 

 

Another part of this formula uses something called Data Units Written. My SSD uses 512. You can find that number by looking at the properties of the drive within the UNRAID GUI.

 

 

First go to the UNRAID Main Page and click on the Cache (or drive) Link:

 

 

1017617720_CacheLink.thumb.png.f00c0c18c533c2fe9176d50d4bc9a795.png

 

 

Next, go down to the Identity section at the bottom and look for the following property:

 

 

2131524272_SSDIdentity.thumb.png.ee7e663404c67e5326fdaedff85e1088.png

 

 

Finally, ensure the following part of the MATH formula reflects this LBA Size (How Data Units Are Calculated Internally).

 

 

854969911_SSDDataUnits.thumb.png.5708270559bd2c9844133dfea5f7c4f8.png

 

 

In the end, the panel will spit out this nice number in %. This is the percent of drive life you have used thus far out of the total drive health (TBW).

 

image.png.2512b9293cb25ca71f680d3db2bb439c.png

 

 

You will also need to adjust the Data Units number (512 in the example above) in the math sections of the "SSD Lifetime Writes" and "SSD Lifetime Reads" panels.

 

 

Once you are done, To check your math, look at your SSD Lifetime Writes and divide it by the TBW number provided by the manufacturer. You should end up exactly correct!

 

 

image.thumb.png.f82688d6787bd05065f583806f4db010.png

 

 

49.31 TB Divided by 600 TB (TBW) = 8.22% Life Used

Or in Other Words, I have 91.78% of my SSD drive life remaining.

 

 

 

Edited by falconexe
  • Thanks 2
Link to comment

Collaborator Thanks 🤝🎉

 

I promised I would call out all those who helped with UUD 1.6. A big thanks to anyone and everyone who helped with bug fixes, new ideas, supplied example code, collaborated, etc... If I missed anyone, I apologize. Feel free to let me know so I can add you.

 

 

  • @caplam SSD Heath Panel Inspiration (Page 18)
  • @corgan UNRAID API Idea, Documentation and Examples (Page 19)
  • @ChatNoir Docker RAM Graph Starting at 1 Instead of 0 (Page 19) & Drive Query Fix (Page 19)
  • @jbartlett CPU Graph Wasn't Capped at 100% (Page 19)
  • @RockDawg Bugfixes Page 21
  • @GilbN RootFS Wildcard Fix
  • @LTM It's a surprise that will be announced soon!
  • @ElectricBrainUK For Creating the UNRAID API Docker! Could not have done it without him!

 

Edited by falconexe
  • Like 2
Link to comment
17 minutes ago, Alex.b said:

Hey,

It seems amazing ! How is the CPU / Ram consumption of this all dashboard ?

 

That really depends on a LOT of factors including how many panels you have, how far back the data is being queried for, what kind of browser you use, and how good your CPU is.

 

Here is a snapshot of my average load going back 24 hours:

 

image.thumb.png.add69d48cdcde32f150090b6fd937e56.png

 

On refresh it peaks at about 1GB of RAM and 25% CPU for about 10 seconds.

 

Download it and give it a shot.

Link to comment

I'm sure it's me not configuring my telegraf.conf file properly but I can not get my disks to show up in the variables. I thought this was normal till I seen the screen shots of the new 1.6 variable section. All my drives show under the Array Disk Storage and SMART data sections on the dashboard. Off hand does anyone know what I have to uncomment to fix.  Thank you

Link to comment

I've just finished installing V6 and there were a few things I had to change to get things working/showing properly.

 

First off, for the server name I had to update it to use the correct IP, being the same as I typed it into the UNRAID API docker, I also had to do the same change for the server status pane.

 

For CPU temp, I changed it to use the search query for `sensors` instead of `ipmi_sensor`, but I had to modify it to be "WHERE feature = smbusmaster_0" IDK if that was because I'm using a Ryzen 7 3700x or if I just don't have something setup properly.

 

Problems I'm having:

 

Dockers are not showing their Images, only the names.

 

It is showing "No data" for the panes with 'SSD Lifetime Writes', 'SSD Lifetime Reads', 'SSD Life Used', and 'SSD Temperature', I'm not sure what I need to do to fix those, I have a Samsung 970 Evo if that helps at all, but the SSD Writes day and year both work fine.

 

Besides those problems everything seems to be working fine. Thanks for any help and suggestions people offer

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.