By Brock Tibert
Very simply, I have been struggling to set system-wide environment variables while my droplet is being created. I have attempted to set them via the User-Data option on the dashboard, both using runcmd and straight bash.
The hurdle I am hitting is that after I echo the variables to ~.bashrc, it seems like source ~/.bashrc is not firing.
Once I ssh into the server, I can source and everything is fine, but I would prefer to have them set out of the gate.
Perhaps I am tackling this problem from the wrong angle, as I am new to this sort of thing, but I am trying to avoid manually setting them every time I spin up a new droplet.
Thanks in advance!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Try adding the following to your ~/.profile file (if it is missing):
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
Add somthing like this to your user-data section when spinning up a new droplet.
#cloud-config
users:
- name: sammy
shell: /bin/bash
groups: sudo
sudo: ALL=(ALL) NOPASSWD:ALL
ssh-authorized-keys:
- your_public_ssh_key
write_files:
- path: /home/sammy/.profile
owner: sammy:sammy
permissions: '0644'
content: |
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.
