I have recently been experimenting with running MiniDLNA on a headless Ubuntu Server. I have written this guide to hopefully take some of the pain out of installing and configuring an amazing program.
"minidlna - lightweight DLNA/UPnP-AV server targeted at embedded systems"
[sourcecode]
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install minidlna
[/sourcecode]
Once this is installed, you need to configure the MiniDLNA conf file located at /etc/minidlna.conf.

My minidlna.conf file reads as follows:

[sourcecode]
sudo nano /etc/minidlna.conf

# port for HTTP (descriptions, SOAP, media transfer) traffic
port=8200

# network interfaces to serve, comma delimited
#network_interface=eth0

# set this to the directory you want scanned.
# * if have multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to a specific content type, you
# can prepend the type, followed by a comma, to the directory:
# + "A" for audio (eg. media_dir=A,/home/jmaggard/Music)
# + "V" for video (eg. media_dir=V,/home/jmaggard/Videos)
# + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
#media_dir=/opt
media_dir=V,/home/nerd/Videos
media_dir=A,/home/nerd/Music

# set this if you want to customize the name that shows up on your clients
friendly_name=Media Server

# set this if you would like to specify the directory where you want MiniDLNA to store its database and album art cache
db_dir=/var/lib/minidlna

# set this if you would like to specify the directory where you want MiniDLNA to store its log file
log_dir=/tmp/log

# set this to change the verbosity of the information that is logged
# each section can use a different level: off, fatal, error, warn, info, or debug
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

# this should be a list of file names to check for when searching for album art
# note: names should be delimited with a forward slash ("/")
album_art_names=art.jpg/Art.jpg/front.jpg/Front.jpg/Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

# set this to yes to enable support for streaming .jpg and .mp3 files to a TiVo supporting HMO
enable_tivo=no

# set this to strictly adhere to DLNA standards.
# * This will allow server-side downscaling of very large JPEG images,
# which may hurt JPEG serving performance on (at least) Sony DLNA products.
strict_dlna=no

# default presentation url is http address on port 80
# presentation_url=http://www.mylan/index.php

# notify interval in seconds. default is 895 seconds.
notify_interval=900

# serial and model number the daemon will report to clients
# in its XML description
serial=12345678
model_number=1

# specify the path to the MiniSSDPd socket
#minissdpdsocket=/var/run/minissdpd.sock

# use different container as root of the tree
# possible values:
# + "." - use standard container (this is the default)
# + "B" - "Browse Directory"
# + "M" - "Music"
# + "V" - "Video"
# + "P" - "Pictures"
# if you specify "B" and client device is audio-only then "Music/Folders" will be used as root
#root_container=.
[/sourcecode]

After editing it, we need to restart minidlna service.
[sourcecode]
sudo /etc/init.d/minidlna restart
[/sourcecode]

Adding or Removing Files of Folders from the Database

In my experience, MiniDLNA tends not to notice if a file has been added or removed from the folders so the database does not update and new files are not shown on your device and old files are still shown even though they have been removed. This seems to be a problem with MiniDLNA and not the receiving soft/hardware. If you change the name of the server, the soft/hardware picks that up fine.

Running this command will scan and update minidlna
[sourcecode]
chmod -Rv 777 /home/nerd/Videos/
chmod -Rv 777 /home/nerd/Music/
minidlna -R -f /etc/minidlna.conf
[/sourcecode]

Also adding this on crontab comes in handy at time.
[sourcecode]
crontab -e
00 00 * * * minidlna -R -f /etc/minidlna.conf > /dev/null
[/sourcecode]