Devcity
City Ward Council Website
Installing City Ward Council Website
This guide assumes no programming knowledge. It uses cPanel, which is what most web hosting comes with. If your hosting looks different, the steps are the same and the names of the buttons change.
You will need:
- Web hosting with PHP 8.2 or newer and MySQL
- The zip file you downloaded after buying
- Your licence key, which was emailed to you. It looks like
DC-XXXXX-XXXXX-XXXXX-XXXXX-XXXX
Set aside about twenty minutes. Nothing here can break your existing website: you are adding a new folder, not changing an existing one.
What you are installing is two things in one. There is a public website
that anybody can visit, and there is an admin behind it at /admin where
you change every word, picture and colour on that website. Nobody can reach
the admin without an account, and there is no public sign up anywhere.
Step 1. Upload the files
- Sign in to cPanel and open File Manager.
- Go to the folder where your websites live. It is usually called
public_html. - Create a new folder for this app. Name it
ward-council-website. - Open that folder, click Upload, and upload the zip file.
- When the upload finishes, go back to File Manager, right click the zip and choose Extract.
- You should now see folders named
app,public,resourcesand others, plus a file calledartisan.
Step 2. Point your address at the public folder
This is the one step people skip, and skipping it puts your settings file on the internet. Do not skip it.
If the site is on its own domain or subdomain (for example
www.yourbusiness.com):
- In cPanel open Domains (or Subdomains).
- Add the domain or subdomain.
- Where it asks for the Document Root, type the path ending in
/public, for examplepublic_html/ward-council-website/public. - Save.
If you cannot change the document root, ask your host to do it. The message to send them is:
Please set the document root for
<your address>topublic_html/ward-council-website/public.
Step 3. Create the database
- In cPanel open MySQL Databases.
- Under Create New Database, type a name, for example
ward-council-website. Click Create Database. cPanel will show you the full name, which usually starts with your account name, likemyaccount_ward-council-website. Write it down exactly as shown. - Scroll to MySQL Users, create a new user, and let cPanel generate a strong password. Write the user name and password down.
- Scroll to Add User To Database, pick the user and the database you just made, click Add, tick ALL PRIVILEGES, and save.
You now have three things written down: database name, user name, password.
Step 4. Fill in the settings file
-
In File Manager, open the app folder.
-
Find the file called
.env.example. Right click it and choose Copy. Name the copy.envexactly, with the dot at the front and no.txton the end. If you cannot see files starting with a dot, click Settings in the top right of File Manager and tick Show Hidden Files. -
Right click
.envand choose Edit. -
Change these lines. Everything else can stay as it is.
APP_URL=https://www.yourbusiness.com DB_DATABASE=the database name you wrote down DB_USERNAME=the user name you wrote down DB_PASSWORD=the password you wrote down LICENSE_KEY=DC-XXXXX-XXXXX-XXXXX-XXXXX-XXXXAPP_URLmust be the address people will type, starting withhttps://and with no slash at the end. Your pictures and your stylesheet are linked from it, so getting it wrong shows as a site with no styling at all. -
Save and close.
Step 5. Set it up
Everything in this step happens once. There are two ways to do it: pick whichever your hosting offers.
Option A: with Terminal (the quicker way)
If cPanel has a Terminal button:
cd public_html/ward-council-website
php artisan key:generate
php artisan migrate --force
php artisan storage:link
php artisan db:seed --force
The last line is what fills the website with example content, so you have a finished looking site to edit rather than an empty one. It also creates the account you sign in with. Run it.
Option B: no Terminal
Ask your host to run the four commands above for you, in the app folder. Almost every host will do this on request. The message to send them is:
In
public_html/ward-council-website, please runphp artisan key:generate,php artisan migrate --force,php artisan storage:linkandphp artisan db:seed --force.
Step 6. Sign in and change the password
- Open your address in a browser. You should see the website, with the example content on it.
- Add
/adminto the end of your address to reach the sign in page, for examplehttps://www.yourbusiness.com/admin. - Sign in with:
- Email:
owner@example.com - Password:
password
- Email:
- Change that password immediately. Click your name in the top right, choose My details, and set a new one. Then change the email address to your own, so a password reset reaches you.
Step 7. Activate your licence
The app checks its licence with Devcity. Until it is activated, every page shows a licence message instead of your website, including the front page.
With Terminal, in the app folder:
php artisan license:activate DC-XXXXX-XXXXX-XXXXX-XXXXX-XXXX
To check it at any time:
php artisan license:check
A few things worth knowing:
- Your licence is tied to the address in
APP_URL. If you move the site to a different address, runphp artisan license:deactivateon the old one first. - The app keeps working for a short time if it cannot reach Devcity, so a network problem does not take your website down.
- Never send your licence key to anyone.
Step 8. Make it your business
Sign in, then open Business details in the left menu. This screen is your website: nothing else decides how it looks.
Fill in, in this order:
- Who you are. Business name, one line about the business, address, phone, WhatsApp number, email, opening hours. Anything you leave empty simply does not appear, so an empty box is never a problem.
- Your pictures. Logo, the small icon for the browser tab, and a main picture for the front page. Without a main picture the site uses the artwork it came with, which is deliberately plain so your own photograph always looks better.
- The look of the site. Pick one of the five themes and set your two colours. The screen describes what each theme looks like. Save, then click View the website and look at it. Try all five: it takes a minute and it is the single biggest decision on this page.
- Where people find you. Your social pages and, if you want one, the map code your map provider gives you.
- Search and enquiries. Where enquiries should be emailed, and the two sentences a search engine shows under your link.
Step 9. Replace the example content
Everything the example site says is yours to change, in this order:
- Pages and sections. Open the Home page. It is a list of sections, and each one is a band on the front page. Click one to change its words, use the arrows to move it, and switch off anything you do not want. The same goes for the About us page.
- Services. One for each thing you sell or do. Each gets a page of its own.
- Work and gallery. Finished jobs, products or photographs.
- Testimonials. Only put a quote here if the person actually said it and is happy to be named.
- Team members and Questions and answers. Both optional, and both make a small business look like a real one.
- News and articles. An article every month or two is what keeps a site showing up in a search.
Delete the example rows you do not want, or edit them into your own. Nothing in the example content is needed by the app.
Step 10. Check the enquiry form
- Open Contact on your website and send yourself a test message.
- It should appear under Enquiries in the admin straight away.
- A copy is also emailed to you. If the email does not arrive, fill in the
MAIL_lines in.envwith the mail settings your host gave you. The enquiry is saved either way, so a mail problem never loses a customer's message.
Step 11. Your privacy notice and terms
The site ships with a privacy notice and terms of use, written as a starting point for a small business. Read them both and change anything that is not true of your business. They are ordinary pages under Pages and sections.
Optional: background work
Some things happen on a schedule, such as sending queued emails. If you want them, add one scheduled task.
-
In cPanel open Cron Jobs.
-
Set it to run once per minute.
-
Paste this, changing the path to your own:
cd /home/YOURACCOUNT/public_html/ward-council-website && php artisan schedule:run >> /dev/null 2>&1
The website works perfectly well without this, and enquiry notifications are sent immediately rather than queued, so they do not depend on it.
If something goes wrong
A blank white page. Almost always the document root in Step 2. Check that
the address points at the public folder.
The site loads but has no styling, just plain text and links. APP_URL in
.env does not match the address you are visiting. Fix it, then ask your host
to run php artisan optimize:clear.
"No application encryption key has been specified." Step 5 was not
completed. Run php artisan key:generate.
A database error mentioning access denied. The three values in .env do
not match Step 3. The database name usually starts with your cPanel account
name, and it is easy to leave that off.
Your logo or an uploaded picture shows as a broken image.
php artisan storage:link has not been run. It is in Step 5. The pictures
that came with the site will still show, because they live inside the public
folder.
"This installation does not have a valid licence." Step 7. Run
php artisan license:check to see what it says.
A page you added gives a "not found" page. Check that it is switched on under Pages and sections. A page that is not published is invisible to visitors on purpose.
A search engine is not finding the site. Your sitemap is at
/sitemap.xml and it builds itself from your published content. Submit that
address to Google Search Console. It can take a few weeks.
The password reset email never arrives. Fill in the MAIL_ lines in
.env with the mail settings your host gave you. Until then the app can send
nothing.
Still stuck. Reply to the email that carried your licence key, and say which step number you are on and what the screen says. That is enough for us to answer in one reply.
City Ward Council Website 1.0.0
Getting it set up for you, and getting help
If any of the steps above did not go the way this guide says, or you would rather somebody else did the whole installation, write to us. Installing it for you is a normal thing to ask for and it does not take long.
We also change these products to suit a business: new screens, your own forms and documents, a report you need, a different look, or a connection to something you already use. Tell us what the business actually needs and we will tell you honestly whether this product is the right starting point.
Devcity Registration SP14842022 Lot10128 Hulhumale Maldives
- Email: info@devcitymv.com
- Phone: 9905600
- Web: https://devcitymv.com
Please have your licence key and the address the product is installed at ready when you write. It saves a round trip.
City Ward Council Website
A city ward council website with appointment slots, permits and published figures.
Version 1.0.0
Installing
Read INSTALL.md. It is written step by step for cPanel hosting and assumes no programming knowledge. You need PHP 8.2 or newer, MySQL, and the licence key that was emailed to you.
What is in the box
Two things in one: a public website anybody can visit, and an admin behind it where you change every word, picture and colour on that website.
The website
- A front page built out of sections you can add, reorder, edit and switch off: a banner, features, services, your work, testimonials, your team, questions and answers, a numbers band, a call to action, an enquiry form and a map.
- Pages of their own for About us, a privacy notice and terms of use, plus as many extra pages as you like.
- Services, each with a page of its own.
- Work and gallery, with a main picture and as many extra pictures as you want.
- A news and articles section, with categories.
- A contact page with an enquiry form. Every message is saved in the admin and emailed to you.
- Five themes, chosen in Settings: Classic, Parallax, Glass, Bold and Editorial. They are genuinely different looks, not five colour schemes.
- Light and dark, remembered per visitor, and every theme works in both.
- Built for a phone first, and readable on a screen 400 pixels wide.
- A sitemap at
/sitemap.xmlthat builds itself, and arobots.txtthat names it and keeps crawlers out of your admin. - Optional Google Analytics, which sends nothing at all until you put your measurement id in Settings.
The admin
- Sign in at
/admin, sign out, and password reset by email. There is no public sign up: you create an account for each member of your staff. - Two roles. An owner can reach everything, including business settings and staff accounts. Staff can edit the website but not change how it is set up.
- An enquiry inbox with a status on each message and notes only your team can see.
- Your own business details, logo, theme, colours, currency, tax name and rate, document numbering prefix and date format.
- Printable documents on your own letterhead, built from those settings.
A few decisions worth knowing about
- No stock photography ships with this product. We have no licence for any, so the pictures that came with the site are drawings, and a card with no picture gets a coloured tile made from its own title. Upload your own photographs and they replace them one at a time.
- The menu builds itself. A section of the site with nothing in it does not appear in the menu, so if you sell no services and write no articles your visitors see a four item menu rather than six items and two empty pages.
- Nothing you type is treated as code. Paragraphs are paragraphs, which means you cannot accidentally break your own page, and nobody filling in your contact form can put anything harmful into your inbox.
- The privacy notice and terms are a starting point, not legal advice. Read them, change anything that is not true of your business, and have somebody check them if you handle anything sensitive.
Looking after it
- Back up your database. Your hosting control panel can do this on a schedule, and it is the only copy of your content and your enquiries.
- Keep the
.envfile private. It holds your database password and your licence key. Never put it in a support ticket or a shared folder. - When an update is released, the email you get will say what to upload.
Support
Reply to the email that carried your licence key. Say what you were doing and what the screen said, and include the step number if you are still installing.
Licence
One licence, one installation. The licence is tied to the web address you
activated it on. Moving to a new address is fine: run
php artisan license:deactivate on the old one first, then activate on the
new one. Reselling, sharing or publishing the source is not permitted.
© 2026
This guide is included in the download as INSTALL.md. It is published here so you can read it before you buy.