<p>Yes, absolutely, you don't need Docker or Nitro! Docker does make it a bit easier to create a common development environment / setup if you're working on a project with multiple people, but it's absolutely not required.</p>
<p>All you need in your development environment are MySQL (or PostgreSQL), PHP, Composer and a local dev server. For my setup at work (on macOS) I use the following:</p>
<ol>
<li><a href="https://brew.sh/" rel="nofollow noreferrer">Homebrew</a> to install PHP, MySQL and Composer (<code>brew install mysql</code>, <code>brew install php</code>, <code>brew install composer</code>).</li>
<li><a href="https://laravel.com/docs/8.x/valet" rel="nofollow noreferrer">Laravel Valet</a> takes care of the local dev server (nginx), PHP-FPM configuration and nice <code>*.test</code> domains for testing.</li>
<li>The database I just create manually (one user + database per project) on the shell, though you can of course use something like <a href="https://www.mysql.com/products/workbench/" rel="nofollow noreferrer">MySQL Workbench</a> or <a href="https://sequelpro.com/" rel="nofollow noreferrer">Sequel Pro</a> for convenience).</li>
</ol>
<p>If you need NodeJS / NPM for build scripts, you can install different versions easily using <a href="https://github.com/nvm-sh/nvm" rel="nofollow noreferrer">nvm</a> (Node version manager).</p>
<p>Now when it comes to production hosting, you'll probably want more automation and less manual setup. At work we use <a href="https://forge.laravel.com/" rel="nofollow noreferrer">Laravel Forge</a> to spin up new VPS and configure automatic deployments from git. Make sure you put your project under version control and use <a href="https://craftcms.com/docs/3.x/project-config.html" rel="nofollow noreferrer">project config</a> to deploy from your local test environment to production easily. Read more about <a href="https://craftcms.com/knowledge-base/deployment-best-practices" rel="nofollow noreferrer">Deployment Best Practices here</a>.</p>

CC BY-SA 4.0
2022-01-18T09:58:04.507Z
Thank you for your detailed explanation @MoritzLost! As I mentioned, I have CraftCMS up-and-running, BUT like to install the 'Spoke and Chain' e-Commerce demo. I can't find any documentation about installing that without Nitro / Docker. As far as I know there's no way to import such demo after installation. Thanks again for taking time to help me out! Really appreciated
Hielke
CC BY-SA 4.0
2022-01-18T11:29:42.843Z
@Hielke Hm, difficult. The demo is basically a pre-built site that comes with a lot of build automation stuff by the looks of it. If you want to run that site without nitro, you're gonna have to run the build tools yourself. In this case, just follow the regular installation guide, but instead of `composer create-project craftcms/craft`, you clone the demo from github. You are gonna need NPM though to build the frontend assets, see the [README](https://github.com/craftcms/spoke-and-chain) for details. To be honest if you just need a quick demo, just installing nitro might be easier.
MoritzLost
CC BY-SA 4.0
2022-01-19T10:44:24.080Z
Thanks @MoritzLost! I'm getting close to up-and-running :-) I edited my post based on your guidance and help :-) I'm very grateful! I hope you have the final answer for me :-)
Hielke
CC BY-SA 4.0
2022-01-16T15:02:40.177Z
2022-01-16T15:02:40.177Z
MoritzLost
<p>As I'm a total n00b, I was wondering if there's a way to install, or import data from (for example) Spoke and Chain without using Docker, or Nitro?</p>
<p>For what I've seen, CraftCMS will be something to love! But when the word 'Docker' comes by, I'm really getting frustrated! Of course this has nothing to do with the way it's built, but it's my blame here. I'm just a simple front-end developer and the complexity which comes with Docker on several layers gives me the creeps :-D I just want to do what I'm good at, and that's designing, not completely re-configuring my VPS. As CentOS has ended it's support, switching to another OS gave me enough headaches already. I'm running Ubuntu 20.04 now, which pushed me into learning new approaches, but it's running fine now.</p>
<p>I really hope it's possible what I'm asking for, because otherwise I need to pass on CraftCMS and look for something else.</p>
<p>Anyone who has an answer / solution for me?
What's wrong with the old-school approach of creating a database (MySQL / PostgresSQL), import data, place the content in a manageable place and finally change the config files as needed?</p>
<p>[UPDATE]
Thanks to MoritzLost I'm almost there! I'm really glad that there are people like him to help n00bs getting up and running.</p>
<p>I cloned the GIT repo (Spoke and Chain) and followed the procedure. After a couple of bumps in the road, almost everything seems to work. The backend is nicely filled with demo data and no errors or whatsoever. But when I take a look at the frontend, the logo and navigation is showing, but the rest is blank. Also no errors. But when I click a link, let's say this one:
<a href="https://craft2.hielke.net/bikes" rel="nofollow noreferrer">https://craft2.hielke.net/bikes</a> I get a twig-error. You can see it for yourself if you click on the link.</p>
<p>Here's the screenshot:
<a href="https://i.sstatic.net/FV822.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/FV822.png" alt="enter image description here" /></a></p>
<p>This is my .env file:</p>
<pre><code> # The environment Craft is currently running in (dev, production, etc.)
ENVIRONMENT=dev

# The application ID used to to uniquely store session and cache data, mutex locks, and more
APP_ID=CraftCMS--94267596-7156-4eec-bb78-d013f4bacba1

# The secure key Craft will use for hashing and encrypting data
SECURITY_KEY=XXXXXX

# The database server name or IP address
DB_SERVER=127.0.0.1

# The port to connect to the database with
DB_PORT=3306

# The name of the database to select
DB_DATABASE=craft2

# The database username to connect with
DB_USER=craftcms

# The database password to connect with
DB_PASSWORD=XXXXXXXXX

# webpack dev server (loopback IP for VMs)
DEVSERVER_PUBLIC=http://localhost:8080
DEVSERVER_PORT=8080
DEVSERVER_HOST=localhost

# Twigpack
TWIGPACK_MANIFEST_PATH=http://host.docker.internal:8080/
TWIGPACK_PUBLIC_PATH=http://host.docker.internal:8080/

# Email
SMTP_HOST=mailhog.service.nitro
SMTP_PORT=1025

# Default Site URL
DEFAULT_SITE_URL=https://craft2.hielke.net/
DB_DRIVER=mysql
DB_SCHEMA=
DB_TABLE_PREFIX=

PRIMARY_SITE_URL=https://craft2.hielke.net/
</code></pre>
<p>It looks a lot different than my usual .env file, so comparison did not help me out here. Does the twigpack section have something to do with this?</p>
<p>I hope I'm not violating any rules here, because it maybe off-topic what I'm asking here.</p>
<p>Thank you very much in advance for thinking with me :-)</p>

CC BY-SA 4.0
2022-01-19T13:40:46.460Z
Looks like a template is including an image template but the image parameter is empty. Probably just a missing `empty` check in the template. Check the stack trace to see which template the error is coming from. Then either adjust the template or upload the image it's looking for. For example, check if there are any Globals that expect an image (for example, the site logo might be a global field).
MoritzLost
CC BY-SA 4.0
2022-01-19T13:41:34.310Z
Twigpack is just a bridge between Webpack and Twig to facilitate hot reloads for the webpack dev server. Shouldn't be causing any trouble if you're not using it.
MoritzLost
<craft3><craft-features>
Is there a way to install a demo without Docker / Nitro?
# Is there a way to install a demo without Docker / Nitro?

(Asked by: username_0 on 2022-01-16)

As I'm a total n00b, I was wondering if there's a way to install, or import data from (for example) Spoke and Chain without using Docker, or Nitro?
For what I've seen, CraftCMS will be something to love! But when the word 'Docker' comes by, I'm really getting frustrated! Of course this has nothing to do with the way it's built, but it's my blame here. I'm just a simple front-end developer and the complexity which comes with Docker on several layers gives me the creeps :-D I just want to do what I'm good at, and that's designing, not completely re-configuring my VPS. As CentOS has ended it's support, switching to another OS gave me enough headaches already. I'm running Ubuntu 20.04 now, which pushed me into learning new approaches, but it's running fine now.
I really hope it's possible what I'm asking for, because otherwise I need to pass on CraftCMS and look for something else.
Anyone who has an answer / solution for me?
What's wrong with the old-school approach of creating a database (MySQL / PostgresSQL), import data, place the content in a manageable place and finally change the config files as needed?
[UPDATE]
Thanks to MoritzLost I'm almost there! I'm really glad that there are people like him to help n00bs getting up and running.
I cloned the GIT repo (Spoke and Chain) and followed the procedure. After a couple of bumps in the road, almost everything seems to work. The backend is nicely filled with demo data and no errors or whatsoever. But when I take a look at the frontend, the logo and navigation is showing, but the rest is blank. Also no errors. But when I click a link, let's say this one:
https://craft2.hielke.net/bikes I get a twig-error. You can see it for yourself if you click on the link.
Here's the screenshot:

This is my .env file:
 # The environment Craft is currently running in (dev, production, etc.)
ENVIRONMENT=dev

# The application ID used to to uniquely store session and cache data, mutex locks, and more
APP_ID=CraftCMS--94267596-7156-4eec-bb78-d013f4bacba1

# The secure key Craft will use for hashing and encrypting data
SECURITY_KEY=XXXXXX

# The database server name or IP address
DB_SERVER=127.0.0.1

# The port to connect to the database with
DB_PORT=3306

# The name of the database to select
DB_DATABASE=craft2

# The database username to connect with
DB_USER=craftcms

# The database password to connect with
DB_PASSWORD=XXXXXXXXX

# webpack dev server (loopback IP for VMs)
DEVSERVER_PUBLIC=http://localhost:8080
DEVSERVER_PORT=8080
DEVSERVER_HOST=localhost

# Twigpack
TWIGPACK_MANIFEST_PATH=http://host.docker.internal:8080/
TWIGPACK_PUBLIC_PATH=http://host.docker.internal:8080/

# Email
SMTP_HOST=mailhog.service.nitro
SMTP_PORT=1025

# Default Site URL
DEFAULT_SITE_URL=https://craft2.hielke.net/
DB_DRIVER=mysql
DB_SCHEMA=
DB_TABLE_PREFIX=

PRIMARY_SITE_URL=https://craft2.hielke.net/

It looks a lot different than my usual .env file, so comparison did not help me out here. Does the twigpack section have something to do with this?
I hope I'm not violating any rules here, because it maybe off-topic what I'm asking here.
Thank you very much in advance for thinking with me :-)

**Tags:** craft3, craft-features
> **Comments:**
> **username_1**: Looks like a template is including an image template but the image parameter is empty. Probably just a missing `empty` check in the template. Check the stack trace to see which template the error is coming from. Then either adjust the template or upload the image it's looking for. For example, check if there are any Globals that expect an image (for example, the site logo might be a global field).  
> **username_1**: Twigpack is just a bridge between Webpack and Twig to facilitate hot reloads for the webpack dev server. Shouldn't be causing any trouble if you're not using it.  

---

## 1 answers

### Answer by username_1 on 2022-01-16. Score: 1

Yes, absolutely, you don't need Docker or Nitro! Docker does make it a bit easier to create a common development environment / setup if you're working on a project with multiple people, but it's absolutely not required.

All you need in your development environment are MySQL (or PostgreSQL), PHP, Composer and a local dev server. For my setup at work (on macOS) I use the following:

1. [Homebrew](https://brew.sh/) to install PHP, MySQL and Composer (`brew install mysql`, `brew install php`, `brew install composer`).
2. [Laravel Valet](https://laravel.com/docs/8.x/valet) takes care of the local dev server (nginx), PHP-FPM configuration and nice `*.test` domains for testing.
3. The database I just create manually (one user + database per project) on the shell, though you can of course use something like [MySQL Workbench](https://www.mysql.com/products/workbench/) or [Sequel Pro](https://sequelpro.com/) for convenience).

If you need NodeJS / NPM for build scripts, you can install different versions easily using [nvm](https://github.com/nvm-sh/nvm) (Node version manager).

Now when it comes to production hosting, you'll probably want more automation and less manual setup. At work we use [Laravel Forge](https://forge.laravel.com/) to spin up new VPS and configure automatic deployments from git. Make sure you put your project under version control and use [project config](https://craftcms.com/docs/3.x/project-config.html) to deploy from your local test environment to production easily. Read more about [Deployment Best Practices here](https://craftcms.com/knowledge-base/deployment-best-practices).

> **Comments:**
> **username_0**: Thank you for your detailed explanation @MoritzLost! As I mentioned, I have CraftCMS up-and-running, BUT like to install the 'Spoke and Chain' e-Commerce demo. I can't find any documentation about installing that without Nitro / Docker. As far as I know there's no way to import such demo after installation. Thanks again for taking time to help me out! Really appreciated  
> **username_1**: @Hielke Hm, difficult. The demo is basically a pre-built site that comes with a lot of build automation stuff by the looks of it. If you want to run that site without nitro, you're gonna have to run the build tools yourself. In this case, just follow the regular installation guide, but instead of `composer create-project craftcms/craft`, you clone the demo from github. You are gonna need NPM though to build the frontend assets, see the [README](https://github.com/craftcms/spoke-and-chain) for details. To be honest if you just need a quick demo, just installing nitro might be easier.  
> **username_0**: Thanks @MoritzLost! I'm getting close to up-and-running :-) I edited my post based on your guidance and help :-) I'm very grateful! I hope you have the final answer for me :-)  

---

